In general though, the `alt`-attribute should be present. If the image is purely decorative, the value should be an empty string (although CSS rather than `img`-tags are recommended for purely decorative images anyway).
The purpose of the alt-text is some text to replace the image if you are browsing without images (e.g. using lynx or a screen-reader). Empty string means no replacement text, while a missing alt-attribute could be replaced with a text saying eg. "[unknown image]".
It makes sense.
Making the alt tag required won't make lazy developers/content providers any less lazy, so requiring it actually weakens the signal you're looking for.
At least requiring one makes them think about it. And tools can put in "image".
If the alt tag was recommended - but optional - then a missing alt-tag tells you the developer didn't think about it (and who knows if the image is significant), while a present but empty alt-tag indicates the image really is decorative/insignificant.
As long as the alt-tag is required, a valid site will contain alt="" all over the place, and you can't know whether that's because the site developer was lazy (but was using validating tools) or if the site developer decided to flag those images insignificant.
Am I feeding a troll here?
(edit: It's like the difference between an SQL NULL and an empty string.)
I just disagree.