In other words: basic economics disagrees with your assertion.
Microsoft could invest 40-50k a year into people who qualify for retraining either in house or at local universities and still come out ahead.
You brought up the fact that there are 12 million workless, as a counter to Microsoft's desire to hire H1-B labor. If that's not to suggest they could fill those positions, what's the relevancy?
> Microsoft could invest 40-50k a year into people who qualify for retraining either in house or at local universities and still come out ahead.
Uhm, 40-50k a year is more expensive than full-time Harvard tuition. That does change the argument a little bit.
Whilst that may be okay if you're in your early 20s or from a country with very limited options, for an older person with greater skills living a relatively good life (e.g. a high-level contractor in South Africa) it's not particularly appealing as the cost-benefit analysis isn't very positive.
Ironically, these are probably precisely the people you want emigrating to your country - people with a proven track record who are ready to settle down and want to create a future for their immediate family, spending and investing everything they earned in the same country -- not young people who have nothing to lose and will probably send the bulk of their earnings back out of the country to their families in poorer nations, and who will potentially bring the rest of their (non-skilled) family in on family visa arrangements. (Of course this is somewhat a generalization, but I think on average it holds true.)
[1] http://en.wikipedia.org/wiki/H-1B_visa#Criticisms_of_the_pro...
Historically, H-1B holders have sometimes been described as indentured servants, and while the comparison is no longer as compelling, it had more validity prior to the passage of American Competitiveness in the Twenty-First Century Act of 2000.
And in the section on American Competitiveness in the Twenty-First Century Act of 2000:
Because of AC21, the H-1B employee is free to change jobs if they have an I-485 application pending for six months and an approved I-140, if the position they are moving to is substantially comparable to their current position. In some cases, if those labor certifications are withdrawn and replaced with PERM applications, processing times will improve, but the person will also lose their favorable priority date. In those cases, employers' incentive to attempt to lock in H-1B employees to a job by offering a green card is reduced, because the employer bears the high legal costs and fees associated with labor certification and I-140 processing, but the H-1B employee is still free to change jobs.
If I were 21 again - no brainer. Unfortunately I'm nearly 30 and would be setting myself backwards if I did it now. It makes more sense to spend time establishing myself locally and using that to put myself into a more favourable negotiating position with a sponsor in the future with respect to emigration. Alternatively I may choose a country with more sensible emigration policies (e.g. Australia, UK if they reinstate their highly skilled migrant quota) and then the US loses out.
http://en.wikipedia.org/wiki/United_States_Permanent_Residen...
Your first link does indicate that the backlog for EB-3 category applications is 6-9 years. So in that time you presumably must be working and wouldn't e.g. be able to start your own company (which is something I'd want to do by age 35), and you'd still be at the mercy of companies who know you're an emigrant so they can pay you less. It doesn't look like you can apply for residency in the EB-2 category as a programmer unless a masters or above is a requirement for the job (i.e. Google is hiring you).
Overall the situation for older migrants is still not very good and while the US would be my first choice it still seems better to emigrate elsewhere or to wait until I'm more established and I qualify under a category with a much shorter backlog (after which it's another 5 years for naturalisation, whereas in other countries you're looking at 5-7 years TOTAL).
One serious potential problem: apparently the old employer can revoke your I-140 (if you change companies) and you lose your priority date if that happens. [1] Also all of this assume your sponsor is going to file the I-140 on your behalf. What if they promise to do it and then don't? You're still at their mercy.
[1] http://www.immigration.com/faq/us-green-card/form-i-140#t101...
This basically buys Microsoft six thousand wage slaves, in the very most literal sense of the term.