Wenn man jetzt von klassischen Sockets ausgeht, dann sollten beide Seiten ihre Verbindung sauber schließen. Die Best-Praktice für
Indy bzw. WinSock kenne ich nicht, die WinSocks sind ein bisschen merkwürdig.
Eine gehaltene Verbindung hat den Vorteil, das bei einer neuen Anfrage keine neue Verbindung aufgebaut werden muss. Durch den Handshake dauert das mindestens die doppelte Netzwerklatenz.
Andererseits kosten offene Verbindungen eben auch (Verwaltung im Betriebssystem und der Anwendung) und es ergeben sich andere Probleme (Heartbeat zum offen halten? Wie lange offen halten?).