klubfingers:
Well, when I'm writing code I'm talking to a compiler, not a computer science professor. Does the code work as intended? If yes, I'm satisfied, I'm not going to publish it and if it fails I'm not going to call a professional programmer to fix it.
I used to think like that, until I started to reuse and maintain my own code. After a few months or years, your own code might as well be written by someone else. Now I try to write it so anybody can read it. Sometimes I wing through with rough stuff just to solve a problem, but I generally go back and edit, document and clean up once things are working. Having code that I might be able to get advice on is just a bonus.
Doing things "right" is also a good sanity check on your own thinking at the time of coding, and reduces unexpected results. Say what you do, do what you say.
It's not great to use the scope of what C++ permits as a guideline for design. This language puts a lot of responsibility in the hands of the programmer. The power of this flexibility is desirable but should be managed carefully.