I think the issue is with Webforms specifically. Webforms abstracts away so much of the way the web works that developers who have spent their careers developing on it never actually understand how the web really works. Concepts like Viewstate hide the realities of web development. The fact that almost all processing takes place on the server-side means they are weak at client-side debugging, etc.
That said, I don't think it's fair to hold the same opinion of ASP.NET MVC developers - as it's essentially the same level of abstraction as Rails.
Having just spent the past couple of months learning webforms ASP.NET coming from a PHP/RoR background what you said is exactly what frustrated me.
Knowing how webforms tried to warp how the web actually works was truly annoying. I understand why they did it, but it really does not help a web programmer in the long run.
And if .NET 4.0 didn't allow you to use ClientIDMode to set your own element IDs I'd have lost it entirely.
Lots of people pick up a bit of .NET in business school - just enough to get hired for an entry-level programming position. They don't teach any programming fundamentals in those classes.
After they're hired at a bigcorp, the devs get by through cargo-culting and leaning on the GUI, so they never learn to actually program. Visual Studio is a great IDE, but it's too helpful for the beginning programmer. 5-10 years later, they've got enough "programming experience" on their resumes to get hired as "senior" devs.
That was written in 2004, when Python was nowhere near as popular as it is now. Ruby is also really popular today too, and thus fits in the category that PG was lumping Java in.
If you want a comparatively esoteric language today, try ML or Haskell.
"Genius" may be overstating things a bit especially now that Rails has gotten pretty popular. You do find some people in the Rails world who are a lot like PHP programmers[0] these days, and you do need to take care to weed those out. That said, you'll probably have to do a lot less weeding out to find somebody to work on a Ruby project than a .NET, Java or PHP project.
[0] In this context, a "PHP programmer" is not simply a programmer who uses PHP, but a programmer who uses only PHP and is almost certainly clueless about CS fundamentals.
As far as bad devs go, don't they exist for most platforms? I mean, is every Ruby programmer a genius?