And how do you identify a 'top-notch' programmer as a government organization dealing with visas? Seriously. I'd argue 95% of hiring managers in SV can't identify a top programmer.
The problem could be solved easily if H1-Bs could only be given to companies registered and headquartered in the USA. That would get rid of the Wipros and Infosyses etc.
That would also get rid of most foreign countries from operating in the states, since they couldn't get visas for management, trainers, or whatever. Maybe you just meant Indian companies?
Fair enough. What you could do is to split the 55,000 visas into 50,000 for US entities hiring foreigners. Then you could have a separate 5000 H1-Bs for foreign companies operating in the US. None of the latter would ACTUALLY be able to hire a single person realistically, because Wipro/Infosys etc would just grab those 5000 completely. But at least the other 50,000 would go towards startups and the Googles/Facebooks/etc of the world hiring foreign talents.
The problem is, if we did that, the rest of the world would retaliate, and the USA sells more abroad than at home (we are a net exporter of technology); we still wind up screwing ourselves and losing jobs in the process.
The problem could be solved easily if H1-Bs could only be given to companies registered and headquartered in the USA. That would get rid of the Wipros and Infosyses etc.