In the specific case of Facebook, it is not about driving wages down. Facebook pays decent wages, even for Silicon Valley standards. It is about not increasing wages.
What Facebook et al need is a way to ensure that they'll be able to fill their positions without creating too much of a jobseekers market so they won't be forced to lure employees away from the competition. All those sign-on bonuses, recruiter fees and salary increases (usually roughly 10% if you jump ship) will add up quickly.
Truth of the matter is, in the SF Bay Area, it is hard to be unemployed if you're a properly skilled tech worker, citizen, green-card holder or otherwise. That doesn't mean I condone the way that the H1-B program often is being abused today. I've seen abuse, and we'll always see that. But this is only made possible due to the ridiculous limits on permanent resident visas vs the amount of H1-B visas, as I pointed out in this comment.:
There is disconnect between the amount of H1-B visas (which are not limited per country) and amount of greencards (which are limited per country). We all know which country I'm talking about: the folks from India, however you may feel about their presence, are hitting this the most: For each EB category (EB1, EB2, EB3 in general), there are 265 greencards available per month. That's a little over 9500 per year. On the other side is the number of H1-B (and L-1) visa that get allocated to workers chargeable to India. Just for H1-B, that number comes close to 170,000 just for FY2012 (source [uscis.gov]). Then there are the L1 visa holders, which are uncapped.
So, you end up having ~10k greencards, vs ~200k influx, just for India alone. This means that there is a huge waiting list for people with approved I-140s, but not eligible to file for AOS. What are you going to do with them? Sent them back? Politics chose to let them stay by renewing their H1-B every 1 to 3 years, even after the 6th year.