I hadn't though about why we over-engineer things this way. But I agree
I might add, based on the over-engineered (and, in general, badly designed) software I have worked with, that it usually comes about because it's never possible to change any aspect of the underlying architecture with the purpose of simplifying things.
We wind up with over complicated 'solutions' because we are simply unable to go back to simplify anything ever for any reason. The 'stake-holders' just don't think it's priority.
So all that's left is keep stacking clever solutions on top of bad decisions such that every new clever solution makes it even harder to go back to simplify.