I like the spirit of your musings,
fraktalisman++
I review projects on several levels. Not only does code get a review, but the project specs and goal sheets do too. My best projects usually have a period of wild coding where I do five or six problem-specific variants. While I'm dousing fires, I'm filing ideas about generic data structures and partitioning that will allow me to generalize. Usually, some other burning task (like a weekend!) will intervene, and, before I get started again on putting out fires, I'll rewrite my code, at least to the point of implementing core data structures and config files that handle most of the variants I expect to see in a much more flexible way. Another week's firefighting, and I'm ready to do the same thing again, changing variable names, doing function grouping, and reworking parameter passing and such. I'm of two minds on commenting; I use commenting to separate subroutines, but I rarely do in-line commenting like I used to do with assembly. The acid test comes when I need to pass my code along to others, especially those who are not competent to handle multilevel references and embedded state- and language-driven coding.