Hidden Costs of Refactoring
Refactoring can help keep a mature codebase fresh. But refactoring can impose a hidden cost when you support multiple releases.
A security patch or feature that you want to cherry-pick to previous releases will not apply cleanly post-refactor. More significantly, your engineers must remember the old design as well as understand the new, to synthesize a patch that makes sense for the older branch.
This is not an argument against refactoring! But keep this hidden cost in mind the next time you hack an old codebase.