Over time the framework gets assimilated by the application and then you can't evolve the application or the framework fast enough to keep up with newer more agile apps
Pontifications
Again the real long term answer seems to be truly layered secure components like Smalltalk or a Lisp machine.
FROM Complexity and Strategy by Terry Crowley:
QUOTE
The dynamic you see with especially long-lived code bases like Office is that the amount of framework code becomes dominated over time by the amount of application code and in fact frameworks over time get absorbed into the overall code base. The framework typically fails to evolve along the path required by the product — which leads to the general advice “you ship it, you own it”. This means that you eventually pay for all that code that lifted your initial productivity. So “free code” tends to be “free as in puppy” rather than “free as in beer”.
END QUOTE