* Category 1 is your average small company who found a great foreign engineer and wants to keep them for one reason or the other. These are in the minority.
* Category 2 is your Google, Microsoft, etc hiring high quality engineers.
* Category 3 is your IT outsourcing / consultancy companies, like WiPro, InfoSys etc.
=======
Of H-1B applicants, #3 is overwhelmingly the largest. These companies fill up most of the quota and crowd out the smaller employers. They also pay closest to prevailing wage (i.e. "low" wages). The crappy part is that sometimes they don't even end up using those H-1Bs down the road while people like me lose their chance in the lottery.
#1 and especially #2 seem to pay wages that are not really correlated with prevailing wage, they pay what they think an employee is worth. In #2's case this can be multiples above prevailing.
A per company limit could help with this, and seems fair to me. This would also distribute the foreign labor better. Not everyone would apply to WiPro et al because they know they're getting a guaranteed visa. Instead smaller companies would get some attention too, and the "h-1b sweat shop" dynamic would be reduced. There are already penalties for being H-1B dependent, but apparently not large enough to be a deterrent.
Or maybe smaller companies could be cap exempt, or part of their own cap. It's not like they are threatening to overthrow the US labor market, accounting for maybe 10k jobs a year. Leave them alone. Let the larger multinationals and such deal with expensive legal procedures, since they really have the power to displace American workers.
======
Of the PERM (green card) applicants, the overwhelming majority is #2, followed by #1 and then #3. This tells you how much cat#3 cares about retaining their H-1B workers. For them, I imagine H-1Bs are an incentive for their workers to come work in the US for the lower end of the prevailing wage, and maybe a vague promise for immigration that doesn't get fulfilled very often. Otherwise, I'm not sure why you wouldn't just get an L-1 for your employee (which is even more abusive since it has absolutely no prevailing wage requirements).
======
Another tangential point is that people say that this isn't an enforcement problem but in some respects it is. Prevailing wage is determined not only by your profession / job but also your level in that job. I imagine many companies misrepresent that level and also the job title (programmer instead of software architect, etc) to be able to pay lower. Of course the way the government checks against this is mainly through attestation: you tell them what the job description is and they compare with the description of that level. After that there is 0 enforcement. But I'm not sure if more enforcement is the key, since even the mention of an audit is enough to stop any but the largest companies (with expensive counsel) from hiring H-1Bs.
========
Anyway, hope this gives you guys some perspective. It's not all bad, and not everyone is in the business of undercutting Americans. But reform is definitely needed. People like me are struggling.