I think rot is not quite the correct metaphor. In my experience it's more likely to ossify, become sclerotic, build up scar tissue. As features are added or performance is tweaked, individual pieces become more complex and the connections between them multiply. If specific action (refactoring) isn't taken to fight this tendency, later developers will react to one piece being maintainable by making even more spurious connections and workarounds in adjacent pieces. That fixes the immediate problem, but makes things worse overall in the long term. Ultimately everything turns into the kind of tangled mess that everyone who has worked on an old multi-person project can recognize.
Unfortunately, a good refactoring requires understanding greater than the original author's[1], and therein lies another whole essay. ;)
Unfortunately, a good refactoring requires understanding greater than the original author's[1], and therein lies another whole essay. ;)
[1] Related to http://www.linusakesson.net/programming/kernighans-lever/