I feel like most things degrade as a matter of scope-creep, while trying to implement features that are actually complex and non-trivial.
Take the unholy mess of modern Microsoft Office. MS Office might have been a good tool for a single purpose back in the 80s, but the addition of multiple generation/layers of features that have been halfway abandoned but kept for compatibilitys sake, make any more complex task non-trivial. There are multiple approaches for implementing templating MS Word, none of which are really good. MS Macros have been great... if you are trying to get arbitrary code execution on Windows machines. And collaboretive editing features include halfway abandoned sharing features and a half-baked Web Version of Office 365.
As a matter of fact I don't believe this is purely out of corporate greed, but rather a lack of scope limitation during design. People don't ask if they should, if they simply can do. We shouldn't have macros inside of Text Documents, there should be another tool for that. We shouldn't have SQL queries pulling into Excel Worksheets. We shouldn't use Excel as a database, but people had to change names of biological genes to avoid these being autoformatted in Excel.
But as a matter of fact, in general one is limited to working with the tools one knows, so convincing someone to use the correct tool for a job will always be harder than just delivering additional features, that we know will make the overall product worse.