The underlying structure

Incremental fixes do end up complicating the product incrementally. 
We are forever stuck on loops of fixing issues, adding features in a hurry and then executing a long term cleanup projects to simplify it.

Not all fixes or features complicate it though. It is the odd ones which don’t belong to the structure the system already has. When we make exceptions in the structure for this, we are breaking the structure. Then we add more such elements, breaking the system bit by bit. 

So, the question is, how do we scale without deviating from the structure. Or better even is to build a structure which takes into account all the oddities and doesn’t break.