A lot of modern programmers don't practice non pessimization. Back of the envelope: what is feasibly the best this should perform?
So you end up with things that take up way more resources tham necessary because anyone has at least 8GB of RAM these days.
Back when there were more extreme hardware constraints you couldn't ship if your program was going to take up all your RAM in a few minutes.
I'm guessing this and that it has a lot more features (bot necessarily necessary features) these days so automatically a lot more engineers which means a lot more inexperienced engineers because there are only so many experienced ones.
Office is what, 80M lines of code? Impossible for any human to understand.
I expect it is only added to because 1) nobody understands what would happen if you removed something and 2) if you intentionally or inadvertently remove some obscure feature then it breaks the workflow for people who inexplicably depended on that feature.
i think in addition to what you say, there are probably also the issues of just running a business...
new releases need new features → bloat
managers need promotions → hire more devs → more bloat
devs need promotions/evaluations → refactorings/abstractions → extra bloat
corporate dictums/strategies (add .net this and that) → bloat city
people leave → knowledge is lost → old code gets worked around/stuck → bloat
---
just a crazy supposition, but i'd guess programs/apps that stay under the radar stay small and maintainable, programs and apps that are popular suffer from a smothering of resources/people that inevitably bloat it up (just look at itunes for another example)
Back when there were more extreme hardware constraints you couldn't ship if your program was going to take up all your RAM in a few minutes.
I'm guessing this and that it has a lot more features (bot necessarily necessary features) these days so automatically a lot more engineers which means a lot more inexperienced engineers because there are only so many experienced ones.