The linkage is implementation defined (3.6.1p3):
The linkage (3.5) of main is implementation-defined.
Also, for your latter question, that is perfectly acceptable to have const char* const*
(3.6.1p2):
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined.