>statement implicitly is understood to come at the end of the main() function
This is only true of the C99 standard, which is not widely implemented enough to assume at this point. Therefore, we assume C89, where omitting a return value is undefined.