We have the same issue in Canada as well. Toronto and Vancouver, our two most expensive cities, have salaries below many other cities while having some of the highest housing costs.
It's not Canada or Japan or UK that is special, it's the US. If you imagine US tech salary levels are normal, you would come to the conclusion that the entire rest of the world underpays their developers. But at that point, wouldn't it be more accurate to say other countries' salaries ought to be what defines 'normal' and US salaries are the exceptional case, not the other way around?