The question of when to apply a band-aid, and when to perform major surgery and break the existing model, is one which every good developer agonizes over. Every good programmer is a perfectionist, and that is a good thing. However, every programmer, good and bad, must deal with the reality that perfection is only something that can be approached, and never achieved. The points where the compromise is finally made, are the points of the horns of this dilemma.
The good news is, as we all do struggle with it, we are relatively no worse off nor better off than anyone else. The playing field remains level and intact.