Reading code is harder than writing and separating taste from business logic is even harder. Often what looks like an ugly wart was a very compact representation of domain knowlege for a special use case. Untangling that knowlege and re-mastering that use case in a refactoring or even rewrite goes wrong far too often.