Ich würde die Mainform trotzdem unsichtbar halten, einfach weil es im Sinne der
VCL ist. Ich verbiege die Intention von Frameworks nur ungerne, eben wegen eventueller Seiteneffekte. Wenn Du die Mainform als Controller implementierst, hast Du von Dort aus auch die Kontrolle, wann und wie die Applikation beendet wird.
Ich packe auf die Mainform einer unsichtbaren Anwendung eigentlich immer Statusinformationen oder Config-Einstellungen und verwende ein Tray Icon mit Popup-Menu, um dieses Fenster bei Bedarf sichtbar zu machen. Ich verhindere dann noch, das beim Schließen dieses Fensters die Anwendung terminiert. Zum Schließen der Anwendung habe ich einen Menüeintrag im Popupmenü des Tray-Icons.
Ich empfinde das als Windows-konform.
@Bummi: Dein Code knallt, sobald Application.MainForm einen Getter bekommt, oder?