But I think your presentation is a little too one sided.
First off, I have dealt with one H-1B visa worker and wasn't impressed. But, then again, I've seen worse from American programmers.
Second, I think you're being unfair. Immigrants, including Indians, have added a lot of wealth to the Bay area and other parts of the US. Many are quite good, and the goal of many H-1B visa holders is to become US citizens.
It's rare to find employment for life. The main example I can think of right off hand is our Italian parent company, in Italy, where they like to hire right out of college, train the people well, and then keep them. The closest in Silicon Valley was probably Agilent, but even they have had to lay people off recently. My company has been through a lot of people, for a variety of reasons.
So because of layoffs and looking for better opportunities, the average job stint in Silicon Valley is around two years.
Also note that H1-B employees are supposed to be paid the prevailing wages. From what I've seen and heard here, they typically are paid pretty well.
When it comes to shipping work offshore (outsourcing manufacturing, programming, tech support, etc to people based in India, China, etc) there can be a whole different set of problems, like lack of communications, lack of understanding the problem domain, different cultures leading to very different approaches. I've seen a lot of problems with companies that use the 'design in US, build overseas' approach. The obvious advantage is lower cost, and it does work OK most of the time.
Take disk drives for example. No one (or not very many) is willing to pay extra for a "made in US or made in UK" hard drive, and it'd be very hard to build one in the US for the same price as the made in Asia ones.
Tony