in6addr_any is :: 0. В качестве аргумента для bind () это может означать «любой адрес IPv6» или «любой адрес IPv6 или IPv4» в зависимости от сокета IPV6_V6ONLY для сокета прослушивания (IPv6). Значение по умолчанию для этого sockopt зависит от вашей платформы и локальной конфигурации - для максимальной переносимости вы должны установить его вручную, чтобы получить желаемое поведение.
Если для него установлено значение 0, он должен получать пакеты, адресованные 127.0.0.1 (или любому другому локальному адресу), и именно здесь вы увидите адреса IPv6 в форме :: ffff: 127.0.0.1. Если установлено значение 1, то ваш прослушивающий сокет вообще не будет принимать пакеты, адресованные адресам IPv4 (в отображенной форме или иным образом).
Если у вас есть сокет отправки IPv6, имеет больше смысла отправлять в :: 1, чем :: ffff: 127.0.0.1 (если я правильно понял настройку, тогда последний, тем не менее, должен работать, предполагая, что прослушивающий сокет принимает оба стека).