One problem that is being ignored by Bass and the like is that "clean code" is subjective. We aren't machines. We don't all start from the same point no matter how clear the spec is. 

A lot of the code I'm wading through these days is very declarative with parts spread out in small, syntactic fragments throughout the finely grained layers of the application (which I might add highly conforms to the concept of "seperation of concerns"). Without comments it takes quite a bit of time to wade through all of the fragments in all of the layers to figure out how the damn thing works -- and that's just small peice of the puzzle. Imagine trying to keep track of hundreds of these undocumented implementation details.

High ideals are great but they fall apart in the real, imperfect world where people actually reside. It's there that the academics fail to everyone but themselves (they of course are too arrogant to notice the pain they have caused others).