Eu considero isso uma prática ruim, tenho visto desenvolvedores fazendo isso. Embora possa ser usado em ambientes de teste, não recomendo usá-lo em ambientes de produção.
Por definição, o kernel tem um comportamento bem definido para o localhost.
Também pode haver problemas, lembro-me de ter um serviço aberto na Internet que não estava funcionando, porque o desenvolvedor usou o nome em um arquivo de configuração, que apontava para o loopback em vez do endereço público.
Eu acredito que seus arquivos de hosts devem ser:
127.0.0.1 localhost
10.5.1.38 foo.example.com foo