I am bemused simply by the author's idea that rewrites are interesting. It is probably a good sign if a developer is irritated by cruft in existing code, but to feel compelled to redo the whole thing 'properly' strikes me as borderline OCD (full disclosure: it happens to me occasionally, but I quickly get over it.)
I usually find it's a sign of a developer who's too lazy to understand the current code, but arrogant enough to think they can make it better by starting again.
Yip, you can't really do a re-write unless you've gone to the bother of understanding what is there in the first place (and wrapping tests around it, if at all possible).
And if you're going to the trouble to understand it and wrap tests around it, then maybe refactoring the existing codebase is a smarter choice. If less sexy.
I think a good mindset to have is to look for the challenge in making decent refactorings.
That is probably the rational assumption for me to make, but I'm not that much more self-effacing than the average programmer. What usually does the job is contemplating the amount of work it would take to divine the current implementation's requirements[1] and the amount of testing that it would take to show that I had correctly implemented them. That is when I realize I can live with the existing implementation and that I have other things I would rather be doing.
[1] If it were self-documenting, or even just documented, I would probably not be thinking of fixing it.