When the code gets cranky, its time to refactor.
Piling shit on top of it just makes it worst.
I'm not talking about NIHS or rewrites, I'm talking about refactoring.
And lots of edge cases and special things are not a good thing in law or software I think.