In C99 and in C++ if execution of the program reaches the closing brace of the main()
function then an implicit return 0;
is executed. That wasn't the case in C90 - reaching the end of main()
without an explicit return
would result in an indeterminate value being returned (strictly speaking, the behavior is undefined).
I can only guess that the authors of "Accelerated C++" feel that the explicit return is good practice simply because it makes your intent explicit. The only other reason I can think of is that it makes code compatible with C90, but I find it difficult to believe that that would hold much weight as a reason.