Como de costume, o problema estava escondido em outro lugar do sistema. Eu tinha essa regra para iptables
que acabei de copiar de algum manual:
-A POSTROUTING -j MASQUERADE
Esta regra foi definida para permitir que o NAT acesse clientes para a Internet. Essa regra não estava limitada a nenhuma condição, portanto, pedidos de localhost para localhost eram NAT e os aplicativos estavam detectando IP incorreto. Após a adição de algumas condições (endereços IP de origem) a esta regra, obtive o endereço 127.0.0.1 como endereço IP dos clientes:
-A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE
-A POSTROUTING -s 10.10.10.0/24 -j MASQUERADE
Problema resolvido.