Das void bedeutet, dass keine Parameter übergeben werden.
Die main Funktion kennt 2 Möglichkeiten an Parametern:
int main(int argv, char **argv);
int main();
int main() ist im Prinzip das selbe wie int main(void), nur das void wird nicht explizit angegeben.
Mit dem Rückgabewert hat das nichts zu tun, bloß weil eine Funktion einen Datentyp als Parameter erhalt, muss es diesen ja nicht zurückgeben.