An endless list of job requirements is a sign the company doesn't know what it wants, so it's hardly surprising they don't know how much to pay their programmers, either.
Though your point may still hold true, however I've seen it often enough that I find it surprising that so many companies (many of whom specialize in tech) are that out of touch.
One of the reasons that the housing bubble is starting to pop in Canada is that the incomes can no longer support the housing prices. We tend to have lower incomes than the US, but our houses are more expensive, cost of living is here, higher taxes, goods are more expensive, etc etc.
I wonder if SV incomes are higher simply because people expect them to be higher, or maybe there are more fundamentals to it.
I think we can find the source of this distortion if it exists. All I can say right now is that areas where you have access to money not backed by productivity tend to trump programming or any other jobs where the employer has to make ends meet. Those areas are usually law, sometimes medicine (often not), and some public sector / government contractors.
And yet, when I look around at the job postings in Canada, a job with requirements that go on endlessly tops out at about $80,000/year. Expect less if you are an average programmer. Such a low income, relative to what US-based companies are offering, doesn't really speak to a shortage in my mind.
I admit, there could be some kind of survivorship bias here: I'm only seeing the lower-paying jobs because the good jobs are less likely to be hanging around on the job boards. But then if an $80,000/yr. job is failing to attract talent, should it even be considered a real position with respect to shortage counting? I could hire dozens of programmers if they would only do it for $10/hr., but I don't think it is fair to count those as unfilled positions or a shortage surrounding that. Nobody with talent is ever going to do it for that kind of pay.