( @Maciej Asembler respondeu corretamente, mas de uma forma que pode não estar completamente clara, então deixe-me tentar reformulá-lo para referência futura.)
Funciona como esperado, pois meu servidor backend retorna 200.
Por quê?
Se você lesse somente esta linha dos documentos:
"status_code" is the HTTP status code returned to the client.
.. então isso seria um bug óbvio de documentação. MAS então segue.
This status is generally set by the server, but it might also be set by haproxy when the server cannot be reached or when its response is blocked by haproxy.
Como nenhum dos casos nesta parte da sentença: "também pode ser definido por haproxy quando o servidor não pode ser alcançado ou quando sua resposta é bloqueada por haproxy" ocorre aqui, a primeira parte da sentença é: " Esse status geralmente é definido pelo servidor ".