According to the C++ standard, void main() is not legal C++.
It is also not valid C.
Edit:
If you use void main() then you are asking for nothing to be returned, so I doubt that it will implicitly return an value (but as it is not standard, who knows what it will actually do).
It will return something. Program itself is also stored in memory and also has some value. Probably the only thing in C++ which literally returns nothing is constructor.
Well yes it will return 'something', the type of which is void. The void type is an incomplete type with an empty set of values. That being said void main() should return a void and not int (not that it is valid anyway).
No, the main entry point is special, it will always return something, even if it's wrapped over void main() (in which case I'm assuming it always returns 0).
the main entry point is special and it has a return type of int. If you have any other return type it is non-standard and thus you can not say with any certainty what the implementer would do.