I find that whenever I try to set a hard, fast programming rule, I find side cases where I honestly probably should break it. It doesn't matter what the rule is about - spacing, line wrapping, what belongs in a class vs. a standalone function, what files to put various pieces of code... whatever rule I make, I find cases where it probably would be better for me not to follow it.
The same happens with comments. I'm very much in the school of long, descriptive function names and variables that are self-commenting. I hate coming across old, outdated comments that no longer apply to the code; with long, descriptive variable and function names, you can read what's happening and it's always up to date. And often that's enough. The code says what it's doing, it's straightforward... job done.
But that's not always enough. Because it's one thing to say what's happening. But it's another thing to say "why". When was the last time you put the word "because" in a variable or function name? That's what comments should be for. Not what you're doing, but why you're doing it. Sometimes code just needs descriptive variable and function names. But sometimes you really need the "why" explained.