in reply to built-ins sometimes iterating over a list, sometimes not

The main part of your question has already been answered, so...

Is there a reason you don't want to exit if printUsage() happens to return false? I think you meant: printUsage(), exit if whatever; :)