It has to do with how software engineering works. Whenever we build a system, that system doesn't typically exist in a vacuum - temporary or not, it exists to handle some particular task or solve some problem. A temporary solution might not handle that task or problem optimally, but it works well enough that the system can function within the greater context of all of the other systems that use it to handle their own tasks/problems.

If enough other systems are built on top of the temporary solution, that temporary solution becomes load bearing - removing that temporary solution will cause everything built upon it to break. Any attempt at replacing the temporary solution needs not only to replace the solution itself, but also needs to ensure that every system built on top of it still functions properly. Software development tends to be this constant layering of system upon system upon system as the game comes together. This generally means that the longer it takes to replace a temporary solution, the more difficult and expensive it becomes to do so. We call this cost [technical debt].

Since games must eventually ship, team leadership must make judgement calls on what debt we fully pay off and what debt we just pay the maintenance cost on. That determination is often determined by how much effort it takes to fix the problem properly and how much dev time we have left. Fixing tech debt is often mostly invisible to the players and we need to weigh those costs against having the developers work on new features or content instead. The temporary solutions work, they just don't work very well. Improvements in performance or workflow may not translate directly to value-add for the player.
[Join us on Discord] and/or [Support us on Patreon]
Got a burning question you want answered?
- Short questions: Ask a Game Dev on Twitter
- Short questions: Ask a Game Dev on BlueSky
- Long questions: Ask a Game Dev on Tumblr
- Frequent Questions: The FAQ