O uso de vários arquivos sempre requer uma sobrecarga administrativa adicional. É preciso configurar um script de compilação e / ou makefile com estágios separados de compilação e vinculação, verifique se as dependências entre os arquivos diferentes são gerenciadas corretamente, escreva um script "zip" para facilitar a distribuição do código-fonte por email ou download em. Os IDEs modernos hoje em dia costumam suportar muito esse fardo, mas tenho certeza de que, no momento em que o primeiro programa de ping foi criado, esse IDE não estava disponível. E para arquivos pequenos como ~ 4000 LOC, sem essa IDE que gerencia vários arquivos para você, o trade-off entre a sobrecarga mencionada e os benefícios de usar vários arquivos pode permitir que as pessoas tomem uma decisão a abordagem de arquivo único.