Quote from endsongs:
One of the main reasons companies want the H1bs is because they won't/can't run off to another company looking for more pay or a promotion as soon as they master their job, like an American will do. High tech companies have been burned repeatedly by investing in training their technical workers only to lose them before the investment pays off. So, part of it is the fault of the American worker.
Of course you recognize that the biggest problem that American companies have with offshore operations in India is the high turnover. Most tech people in India leave a job in a mere 13 months in order to jump down the road for a larger paycheck. The focus offshore is on cheap labor for the American companies.
American companies keep moving tech jobs offshore and don't seem to think that having 25% turnover or more each year is a big problem. Applying a similar standard we must make the case that most American companies don't really care about turnover onshore either; they are really focused on cheap labor. Most H1-B holders I have worked with in the U.S. earned only 60% of what an equivalent American engineer earned. A good portion were paid less than fresh American computer science college graduates. Most left the company immediately after they got their green card to move down the road for higher wages.
In summary, the argument you make above is nonsense. Most large American tech companies do not care about retaining and training their tech workers. In fact most would like to see them move on when they become to "senior" and expensive so they can be replaced by cheap labor.