In my mind, it's rather a combination of:
1) European employees not willing to work much more than 8h a day (whereas US folks tend to work themselves to the bone)
2) European employees living in cheaper countries (so the HR has a ready-made BS answer to "why do I earn less than my US counterparts)
3) What I believe is a bit of disrespect towards non-US employees. If the company's based in the US, the upper management's going to be US, and I often feel like the attitude is somewhat "your education must have been worse than the US one, so you'll probably be worse than US engineers" kind of a deal. This is, of course, very subtle; I've personally never felt that from my immediate co-workers, but the salary policies seem to be geared this way.
Of course, being more expensive to employ doesn't help. I'm sure it's one of the contributing factors too. But, as a European, I feel like it's far from being in the top 5 reasons for the salary discrepancies.
That's with an effective tax rate of like 12% for middle class which is absurdly low. On top of which tech workers can probably afford to shove in the max contribution to an HSA every year completely tax free and then use it for healthcare expenses and/or invest it for retirement otherwise (that's what my wife & I do).
There's a much simpler explanation: The EU simply doesn't have the capital. There are no pools of venture capitalists clustering hundreds of billions of dollars they can piss away on half-ass ideas.
It's as simple as that. They funding money simply doesn't exist.
A Facebook engineer in London is probably earning 70% of what a Facebook engineer in the US is earning, even after taking in to account taxes, benefits and any cost of living discrepancies.
For the specific case of London (and more specifically Facebook), this is driven by the fact that FB/Goog don't count tech people in finance as appropriate comparators. I suspect that this is not true in NY/USA.