De acordo com o documento vinculado, a configuração completa requer alguns componentes a serem configurados.
Se você tiver uma instância haproxy na frente dos seus back-ends reais, talvez seja necessário aplicar accept-proxy
:
the listening sockets accept the protocol when the "accept-proxy" setting
is passed to the "bind" keyword. Connections accepted on such listeners
will behave just as if the source really was the one advertised in the
protocol. This is true for logging, ACLs, content filtering, transparent
proxying, etc...
Esta é a parte que você descobriu em sua resposta, os servidores de back-end precisam ser configurados com o send-proxy:
the protocol may be used to connect to servers if the "send-proxy" setting is present on the "server" line. It is enabled on a per-server basis, so it is possible to have it enabled for remote servers only and still have local
ones behave differently. If the incoming connection was accepted with the
"accept-proxy", then the relayed information is the one advertised in this connection's PROXY line.
E isso é o máximo que pude encontrar na v2:
Haproxy 1.5 also implements version 2 of the PROXY protocol as a sender. In addition, a TLV with limited, optional, SSL information has been added.