1. Most H1B workers are under 30, and most unemployed American programmers are over 35. This is by far the biggest part of the iceberg, made invisible by the fact that these people drop out of statistics.
2. Visa handcuffs are not slavery per say, but close enough. (If you think that's an overly dramatic statement, you are probably not an immigrant from some place you really don't want to be, like me, or someone whose family will quite literally starve if you don't send them money). People endure getting beat up by their husbands for 5 years straight for the sake of a green card, so there is no doubt they will endure long working hours and much more.
3. The whole "shortage of IT talent" hysteria is way overblown when you look at the actual numbers. Just one example, latest DICE salary report:
http://media.dice.com/report/2012-2011-dice-salary-survey/
Contrast the opening sentence:
Technology professionals enjoyed their largest annual salary growth since 2008, according to the 2012-2011 Salary Survey from Dice, the leading career site for technology and engineering professionals.
... with the actual numbers:
After two straight years of wages remaining nearly flat, tech professionals on average garnered salary increases of more than two percent, boosting their average annual wage to $81,327 from $79,384 in 2010.
So, let's see. While the inflation is chugging along at ~3% per year, we get 2 flat years, followed by a 1% increase? So basically, we make less money each year?
Is the tech industry an economic miracle? Are programmers the one must-have product whose prices get lower when it's in short supply and the buyers have pockets full of cash? Or is there a simpler explanation?