Currently if the server is unable to set a GeoIP cookie for a user (usually because they're accessing via IPv6) we try to geolocate via a background call to an IPv4-only server, which forces dual-stack users to downgrade.
We then try to save the geo data to a new cookie, but because Varnish sets the cookie using a domain wildcard and the JS code doesn't, we end up with two GeoIP cookies. When the user comes back to the site, the JS (always? sometimes?) gets the bad cookie again, so the background call is performed again.
At least a few fixes seem possible (checking all cookies in JS, or ensuring the JS-set cookie has the exact same domain setting as the server-set one). Choose one and fix it.