Your other points are a good start. The main thing I would add is a floor on salary. H1B for a >$200k job makes some sense, it shows it's essential, the employer really wants to fill it and is having a hard time finding a US citizen. H1B for average or below average salaries is where the real abuse is. It's basically a form of indentured servitude.