We use F5, just tried with the release HAProxy and I get concictent X-Forwarded-For between clients! Dont know how I managed to forget to check that. :)
In that way, I believe it should be consistent, whatever the client.
So in the HAProxy config the header gets updated/inserted with
frontend http-in .... option forwardfor
In the HTTP profile in F5 we have " Insert X-Forwarded-For " enabled which is basically the same as the HAProxy config option. No irules to modify the header. But I get different results depending on the client.