Second, although consultants typically make more than other software engineers, it still suppresses wages for all software consultants. The pay for software consultants in the US would be much higher without bringing in immigrants to do that work.
Personally, I don't want to reduce the number of highly skilled immigrants that come to this country. I would love to see it increase a lot more. But I don't think it benefits the United States economy and the average American citizen when this immigrant labor is focused on non-scalable activities where the labor needed is likely to be highly fungible. That only serves to increase the bottom line of the shareholders of such companies at the expense of suppressing wages for similar professionals working in the US. That's net-negative for the country, and a subsidy for those shareholders. Every one of those H1-B visas should be decided on the likely value that immigrant can bring to the US economy and not the value that immigrant provides to the shareholders of a consultancy.
IBM getting 5 more generalist software engineers is far less valuable to the US economy than 5 engineers that are specialists in some new emerging technology such as renewable energy. The decision process for granting H1-Bs should be similar to the decision process for making an investment in a startup. You invest in things that can grow.
FWIW, You might think I'm a red-blooded anti-immigration American, but I'm actually an immigrant software engineer living in the US.