a) Completing a CS degree does not a programmer make.
b) Geek/boring stereotypes have never seemed overtly powerful in my experience, the worse perception is that CS is hard, and many college students don't like that word.
c) This problem is happening in all the sciences, and I think its mostly a numbers game. China and India (and Pakistan, and etc etc) just have a hell of a lot more people than the US does. As such they ought to have more people with a high apptitude for programming.
d) He uses .NET, ehh, I guess I don't really have a fourth point.