If an approach works, humans tend to keep on using it, even if there are better approaches.
People can’t imagine alternatives to the things they are used to (and work). Or perhaps imagining alternatives is difficult, and because it is difficult and the approach already works, there is no need for finding/testing alternative approaches.
I’ve seen it happen multiple times that names in source code evolved to mean exactly the opposite what the name suggests. The longer it remains unfixed, the more hesitant developers are to change it, due to fear of breaking anything unknown.
This is also risk aversion: the current code works, even though it is not ideal. Refactoring that code carries risk.