Ist das Problem mit dem Speicherleck wirklich so gravierend?
Ich finde die Erstellung aller Fenster am Programmstart und dann mit SHOW und HIDE irgendwie nicht sehr elegand?
Nein, vom technischen Standpunkt her ist das heutzutage irrelevant aber es wird dir später das Genick brechen wenn plötzlich die Controls auf alte GUIs referenziert werden die nicht mehr existieren.
Wenn du trotzdem immer die Fenster neu erstellen willst solltest du auch die Fenster löschen wenn du sie neu erstellst, dann hast du das Problem nicht mehr.
Jedoch gehen dann sämtliche Eingaben verloren wenn du das Fenster wieder hervorholst und du musst sie erneut reinschreiben, deshalb werden grundsätzlich Fenster erzeugt und bei Bedarf versteckt oder angezeigt.