s/SHOULD/MUST/

Producing an error and not telling anyone about it is a hallmark of a badly designed program. Imagine if `ls` silently failed (or any other command line program for that matter).  It would be ridiculous.  You definitely shouldn't have to do `ls; echo $?` to discover if you have a complete file listing, and the same is true of basically every other command line program in the world.