Do we only let people in because of the skills they have? What about the next set of skills that will become more important in the future? What specific set of skills do we let in, which ones do we keep out? What about people who have the potential, but currently lack the skills? How do we find those people?
I don't believe in exceptional programmers, I believe in exceptional thinkers. Programming is a skill, just like any other skill. Some people will be better at it than others. But it's a skill that can be taught. People who are more capable of being the "great thinkers," are more likely to be a better programmer than not, not because of the programming language they know, but because they're able to solve problems. If I ran a company, these are the people I want.
But then we come full circle, who are these people, and do I only let them in because they're "special?"
I also think that way too much attention is paid to what Paul Graham says. Yes, he was successful with certain things, but that doesn't mean he's all knowing and all wise.
As to my biases, I'm all for immigration, but not so much for the H1B program (for ethical reasons, I'm not a big fan of the whole "he has skills that no one else has, so he gets the golden ticket to the chocolate factory. To me, that just means that he/she had a more privileged upbringing than 60-80% of the world. ie, access to clean water, food, education, electricity, computers.)