For reference, this is how it works in Japan, for example. A company can sponsor your visa (which is basically some paperwork). But you get a fixed period in which you can work, and you can change companies without having to do anything except signal a company change to the immigration office. Very low friction
As a side-note, me changing jobs fairly dramatically increased my salary. I could presumably (I did not negotiate with old employer but a colleague did when he was about to leave) have gotten the same salary at my old place just by showing the new offer. I don't really see where the difference to a citizen is in this whole exercise.
([1] this is so because even if in the worst case you were kicked out of the country you could still reclaim the remaining time on the H1B so the worst case is still limited and I know of zero such cases.)
The way it works with large bodyshops is, let's say, HP runs a software team of 20 paying everybody $100k. Infosys or other "consulting" company then shows up and offers to run the same project at the cost of $1.6 mil. Immense savings, so HP signs the deal.
Infosys then runs the H1 posting advertising 20 position paying $45,000 each. Their US operations are headquartered somewhere in NJ, so it passes the US Department of Labor snuff test of adequate standard wage. It's also understood that a consulting company might have its consultants deployed on premises, all depends on the client.
As very few locals apply for $45k jobs in NJ, Infosys staffs the project with its own H1 applicants who are then immediately to start work at client's location in Cupertino or Seattle.
* Usage of names like HP, Infosys and New Jersey is illustrative, not factual. It just helps to understand how margins are made in bodyshop industry.
Yep. They seem to favor cramming them into the nearest apartments (if possible in walking distance). It's probably optional, but your options are limited when you're getting paid dick, looking for housing in an area with higher cost of living and you're trying to send money home. I'm not saying it's not a comparatively good opportunity for them but they could be paid more fairly.
In simple economic terms, yes, supply and demand exist, and if you reduce the supply of software engineers their salary will go up. However, canning the H1-B program is only one way to reduce supply. One could also limit the number of computer science degrees granted by US universities, and that would increase software engineer wages too. Is such protectionism justified? Probably not. But a lot of people seem to take an "ends justifies the means" approach when arguing against immigration.
The idea usually is that the presence of an H1B means that someone local does not exist to do the job, which means that a company would otherwise have to pay more than the going rate to poach someone else from another company. Then the company losing the employee has to pay more to poach from somewhere else, and so on, until eventually everyone who is suitable for such a position is making more.
The fact that H1Bs are paid what the locals are paid is exactly the issue people have when they talk about wage suppression. It is in much the same vein as when Apple/Google/et al. agreed to not steal each others employees. It is not like those employees were exactly hurting for compensation, but they theoretically could have made more without that treaty between companies.