Still, in my experience (which is nothing special, 4 years undergrad, in second year of masters) there are definitely professors who consider teaching an unfortunate side-requirement of their research. And I don't think it's unique to my school. I think this sucks.
I have been working as a teacher's assistant for a few semesters now, and I hear what you're saying about students who really don't care. I think especially in engineering, you get students who chose the major just because they got good grades in math and science and heard engineering pays well. Then those students complain when you ask them to work hard (or even just work).
Sidenote: WebCT :( haha. My school paid (and will continue to pay) a ridiculous amount for some enterprise course scheduling/billing/etc. software that would have been a great project in software engineering (e.g. large project management). All while we're having major budget issues.
"the amount of overhead and red tape (grant proposals, teaching, committee work, etc.) you have to do apart from the interesting technical work severely limits your ability to actually [have a practical impact via your research.]"
Teaching is part of the overhead if your goal is to do research, or in his case more precisely to build great systems. A lot of professors feel that way.
To Matt's credit, by all accounts he put plenty of effort into his classes and they were excellent, even though it wasn't what he really most wanted to do. But other professors who feel that way and, I suppose, have a weaker sense of duty end up as the bad teachers that students hate, because they just don't care.
Hmmm, I suppose it's unfortunate that a final exam does not lend itself to requiring the use of a computer to demonstrate that you truly can program your way out of a paper bag.
Trying to deal with plagiarism (which even goes as far as assignments posted on RentACoder), using ancient marking systems (WebCT is well and truly evil), handling students who obviously don't care at all but feel entitled and so on.