Забавный факт: в новых стандартах плюсов main не может быть non-int и даже void. Но в чём причина такого регламента? Допустим, в некоторой POSIX-несовместимой 32-битной ОС разрешён возврат программой int64_t (или даже int128_t), при том, что int для неё будет определён как 32-битное число. Выходит, С++ может оказаться принципиально не совместимым (строго говоря) с такой ОС?