But mostly, refactoring is limited by budget constraints, not technological capabilities...
EDIT: I don't mean to say the budget reasons are good ones. I think it'd save a lot of money in the long term to refactor more.
Some of my best insights have been when I step away from the computer and either read a printout of my code on paper, or read it on my iPad as though I'm reading a book or something.
I'm not sure if not being able to edit it (no keyboard) is what does it, or if it's just a different kind of reading than you do when you're in the code editor, but I'll often look over some code in bed right before I go to sleep and have to keep jumping out of bed to go back to my computer to make tweaks that improve it.
When I think of refactoring that has gone well, so many of those cases are what immediately springs to mind.
Timothy Jeng
Looking for the next "hello world"
Ghazouane
code ♥ surf
TDD mate, TDD ;)