The laws are written so that guest workers are basically indentured servants to the companies they work for. Furthermore, we basically give guest workers 6 years of well-compensated on the job training after which point we say "go home and enrich your home economy." If I were to say the things that need to be fixed:
1. Once you've been working at a company for a year, you should be free to remain in the country whether you have work or not. Companies shouldn't be able to hold you hostage. Companies should probably even have to sponsor you for some sort of H1B level 2 to keep you around past 1 year. (Bear in mind, I'm not looking for the current bureaucratic nightmare, I'm looking for companies to have to give guest workers their freedom well in advance of the current six-year mark.)
2. If you've been gainfully employed in the country for three years under an H1B, you should get a green card automatically. No waiting around, no nothing.
If we do this, wages will rise naturally, and we'll see whether companies have a legitimate shortage or they're just looking for cheap labor.
That said, points 1 and 2 are definitely worthwhile. But you're devaluing your points when you compare a high paying job with some annoying visa clauses, with indentured servitude. Indentured servitude is really serious: it's like when people talk about "raping" the environment. Don't make the comparison, it serves no-one.