The discussion is interesting for another (ironic) reason. As we come to discuss the standard defined behaviour, we come full circle to post #4 and should realize by now none of that is really necessary.

On many cases, being thorough doesn't convey a special level of correctness. The advise on post #3 is enough. The void argument isn't really required and even returning 0 (whether from the return statement or exit function) at the end of a main function is an exercise in futility since the C standard dictates the compiler should already do that for us. (We actually didn't discuss that particular, but it was on everyone's mind).