I sometimes enjoy refactoring more than writing new code. Deleting code, in particular, is pretty much my favorite professional activity.
I always regret type A. I do a lot of it.
I'd like to think I am pretty good at type C...
I like the Dijkstra quote: "Elegance is not a dispensable luxury but a factor that decides between success and failure. "
I also think it is a great way to become a better coder to refactor programs until you think it is perfect or close to rather than just make it work and then leave it because then you will never get better than that.
My current environment is much more receptive to this kind of activity, though.
I actually agree with the author on both points. There just isn't a good way of measuring how you use your time refactoring and cleaning code, when you could be fixing bugs or adding features (both of which are always-present).
Hence, it's difficult to justify too much time in "beautification" if your code works, even at competent shops. At some point, all of us just need to get the code out, so we must all strike a reasonable point between beauty and reality.
On the first point, I release a fair bit of code into the public domain. Even though I do make it nice and pretty as I code, it always takes additional beautification work before I'm ready to release it to the world (i.e. better commenting, code structure, or documentation). I'm pretty sure it takes a rare programmer with a lot of free time and great experience in the domain to actually have beautiful code at the conclusion of a project.
The first time I get something working, I often don't have the perspective to know how the best way to organize or abstract it. If I didn't go back and clean that up, it would be significantly harder for me to add on new features.
Maybe I'm just weird, but I do that all the time.
Nobody is going to pay you for that.
Sure they will: refactoring and code cleanup is a commendable activity at plenty of competent software shops.