>int main()派の理屈を教えてください
ANSIがそうなっているからだろ。
ANSIに準拠していないCなら何も返さなかったりint以外を返してもいいんだろうけど。
ついでにint main(void)か int main(int argc, char **argv)ね。

逆にvoid main()の理屈がわからんぞ。
たぶん本にそう書いてあったからというくらいだとおもうけど、、。