One factor - I was once a PhD student in engineering at Berkeley, and in my opinion, it's much a harder path than a JD or MBA, more uncertainty and lower pay. While the "100K" salary the EE PhD in the article was earning isn't bad, it's actually quite low compared to other professional degrees that can be earned in half or even a third of the time (with less rigorous undergrad preparation to boot). To me, there's little doubt that universities and employers use the desire for a green card to keep these spots filled without becoming "competitive" with other professional degree programs (the RAND institute recently did a study that supports this view).
What to do? Well, maybe we should just set a minimum pay rate for a green card. Perhaps a company needs to commit to a high salary to prove the worker really is highly skilled. Given that starting salaries at top law firms exceed $150 for a three year degree, I don't think that 100K is quite enough for the company to claim that the worker is "critical" and "can't be found anywhere". So I think this salary threshold needs to be very, very high.
If they were paying him 200K, I'd have no trouble granting the green card, because then the absence of americans would be easier to attribute to a "skills gap" rather than a desire to pay salaries that are not competitive with other (often easier) career choices.