I don't think the economics of that add up, though, long term. If there are a bunch of people willing to work, and an artificial barrier, that barrier will only work for so long before people route around it.
The collusion between the big tech companies to drive down salaries for top personnel strongly suggests that the market salary for these people is actually higher than what they're currently paid. They're grade-A talent in a hot field, the fact that their salaries are high doesn't mean they're above-market.
Paul Graham makes the following claim:
"if you talk to startups, you find practically every one over a certain size has gone through legal contortions to get programmers into the US, where they then paid them the same as they’d have paid an American. Why would they go to extra trouble to get programmers for the same price? The only explanation is that they’re telling the truth: there are just not enough great programmers to go around."
Phil Greenspun makes the common (common because, in my opinion, it's so sensible) argument that perhaps a "shortage" exists because the market rate is too low to draw people into the field - that if you raised the price to well above what it currently costs to get a programmer, you'd draw considerably more people into the field. Greenspun claims that Graham's argument is based on the flawed notion that "there is no way that if companies nationwide paid programmers more than the BLS’s median pay of $74,280 per year (source), additional Americans would be attracted to this field."
Part of the problem with Greenspun's retort is that PG claims to be talking only about an extreme elite, not the run of the mill programmers. However, the logic still stands in my opinion. Have you seen what elite people earn in other fields? I guess if you think that it's impossible to get someone who would otherwise have gone to med, law, or finance into programming by offering more money at a comparably elite level of talent, you'd agree that the supply of people is fixed and doesn't respond to market signals. That seems to be the basis of the disagreement.