sorry, but I have to call BS on the 'its mostly about the elite programmers'. it SHOULD be about the specialty fields or where exceptional experience is needed and some researcher from a foreign country is the only expert who can do this job, that's fine.
what I have seen (been living in the bay area 25 years; born in the US and lived here all my life; and, yes, I have travelled outside the US) is that the jobs that are being filled by h1b's (at cisco, for example, where I -used- to work) are ordinary common jobs. I have met some very sharp folks who where h1b but also lots of very inexperienced, shabby programmers who created more work as clean-up after them than they added during their stay.
I mostly apply for 'regular old' programming jobs, these days. I consider myself average or a bit above, but certainly not genius level. I'm capable and I can usually get the job done or at least escalate if I'm stuck. but even for the common jobs, I'm being pushed aside in preference for the h1b. I see it at interviews. I see it when I am working, the ability level and experience level of those around me. we can all see it, its not hard. and we all know that its not the high-end programmer that we mostly import. its the common guy, and I have to tell you, lots of us 'common guys' are out of work and companies simply won't hire us because we are not as abusable as foreigners. plain and simple, cut and dried for you.
I understand you have needs and your family is important to you. but why should my country spend more time and energy supporting YOU instead of ME? I don't expect YOUR country to support me or take care of me. I don't expect country A or B or C to support me. I DO expect my own damned country to prefer its own people be working here, getting the rewards of their life-long investment in the place and helping to make the next generation of americans even better off than their parents.
that brings up another sore point. am I better off than my parents generation? I'm mid 50's and I still don't own my own house. I make (or made, when I was still working) a nice figure in the $100-$200k range. but in the bay area, its really hard to afford to buy a house if you didn't have help, and with employers throwing you under the bus every other year, no bank wants to loan money to a 'contractor' who has 'uncertain employment'. therefore, I'm a renter and may never have the chance to buy my own home. my parents grew up in the WW2 era and they made a fraction (translated) of what I make/made. but they owned their own home, could afford to have kids and treat them well, they didn't worry about 'will I be working again next year' like I do, pretty much all the time, now. they had a retirement and pension and overall they had many things I will never have.
I'm worse off than my parents' generation, overall. and its not looking like its going to improve any time soon.
so WHY should I - and people like me - just hand over my country to visitors? again, would your home country willingly accept me? my country is accepting you. where do *I* go?
you have to understand the feelings of those who invested their whole lives here, only to be told 'sorry, social contract is now off.'