Mich wundert nur, dass der XE4 Source funktioniert, ohne dass ich an dem Server etwas geändert habe. Da scheint also die Verbindung "sauber" getrennt zu werden...
Den aktuellen Verbindungsstatus kann man auf Systemebene mit netstat oder TCPView kontrollieren. Als erste Maßnahme um halboffene Verbindungen bei zweiter und weiterer Verwendung, auszuschliessen würde ich die TIdTCPClient Komponente nicht auf dem Formular ablegen, sondern nur im Source dynamisch erzeugen (wie in meinem Beispiel).