Actually most of what you are putting them down for is
actually good advice. I likewise use few comments, use
descriptive variable names, comment each function, etc.
If you are relying on understanding comments rather than
figuring out the code, you will have serious problems
when the two disagree. And they will come to disagree
over time - a general principle is that whenever two
things need to stay in sync (eg comments and code, code in
two places, etc) they inevitably will tend to not do so
The real problem sounds like the use of global
variables and a cut-and-paste methodology...
For the record the single most miserable piece of code that
I have had the misfortune to meet was also one of the
most straightforward and heavily commented. It was utterly
impenetrable for the same reason that legalese is so hard