printf can fail for reasons like ENOMEM which do not set the ferror flag and thus are not caught by the close_stdout atexit module, so a robust program should be checking for failures.
Whoa. I hadn't seen this before. at_exit is not sufficient to check for write errors? What does this mean? We don't get to ever use printf? (Well, if we want to be "robust", but of course we do.) This seems crazy!