Uma porta não está aberta se algo não estiver escutando uma conexão.
A razão pela qual é de má forma ter todas as portas abertas para todos os lugares é que expõe os serviços que estão escutando nessas portas para explorar. É por isso que existem firewalls, para limitar o que é permitido conectar-se a certas portas, para reduzir a área de superfície exposta pelos serviços.
EDITAR
Para responder à sua pergunta sobre por que as pessoas não podem simplesmente criar um software que não é explorável:
Isso é bastante fácil para programas simples, mas muitos programas que requerem um soquete são complexos. Como tal, eles têm muitos componentes, muitos dos quais não são nem mesmo escritos pelo desenvolvedor (bibliotecas incluídas). Você não pode confiar em outras pessoas para manter sua rede segura quando houver métodos de proteção que você mesmo possa usar, como firewalls.
Execução de código arbitrário / remoto é um risco enorme, como você apontou. Infelizmente, estouro de buffer e outras falhas de segurança que são comuns. Olhe para qualquer atualização de segurança da Microsoft e aposto que ela corrige a execução remota de código ou a elevação de privilégios, e a MS é uma empresa enorme com centenas de desenvolvedores e bilhões de dólares.