Code Inflation (2015) [pdf]
computer.org
computer.org
You can preach about {unit,functional,integration,load,performance} tests, but tests can only verify a miniscule sliver of the state space of any non-trivial program.
So in that situation, engineers tend to avoid risky changes and to accrete stuff instead. I haven't been convinced that it's unreasonable, either.
Until the company loses the business with a product more expensive than the competition's, because it requires a bigger flash part to house all this accretion. Literally happened to me while I was working for a market leader -- we got beaten by a very recent newcomer who probably followed the same strategy but simply had not got enough accretion time yet.