No, non si rallenta la macchina. Il for infinito (o un while(true) che è la stessa cosa), dice semplicemente di ritornare alla chiamata al metodo accept(), il quale è bloccante: infatti l'esecuzione del server rimane ferma su quella chiamata, finchè non arriva una connessione o la socket viene chiusa (non si usa, quindi, il POLLING come potrebbe sembrare).
L'uso dei thread è l'ideale per questo genere di applicazioni.
E' sufficiente fare in modo che, quando il server riceve una connessione, venga creato un thread che la gestisce... e qui, l'uso delle classi anonime, è il top per la gestione di un numero di connessioni non conosciuto a priori.
Ciao.