Das Subsystem steht in der Tat irgendwo im
PE-Header und wird normalerweise nicht aus der Tatsache, dass eine der beiden Einsprungfunktionen existiert, abgeleitet. Dass beim Kompilieren ohne spezielle Parameter als Subsystem Konsole verwendet wird, ist weniger überraschend - aber dass es trotz nicht vorhandener main() dann durchgeht verstehe ich nicht. Du könntest vielleicht mal in die Linker-Optionen deines Compilers schauen, vielleicht gibt es dort einen Parameter für das Subsystem.