I've certainly seen a lot of spaghetti code. That is not the visible problem with Elite (Do they have actual spaghetti code to deal with underneath? Only they know. Probably not as such, though.).I'm not a programmer, so I was amused and curious when I saw the term "spaghetti code" used on here a few months ago. Apparently it refers to a phenomenon in which a program is so complicated and its code so intertwined, that making a change in one part does crazy and unexpected stuff in totally different areas, causing things to break whenever something is changed.
The problem with Elite and bug-fixing/introduction is, in short, that the game concept was "multiplayer Elite" [1]. Obviously, trying again with "Elite 5" is unlikely to help there.
In a bit more detail: the game has "spaghetti mechanics" (or as they'd be called on a forum which hadn't decided to give a different definition to the term, "emergent gameplay"). The code can be perfectly written, perfectly compartmentalised, fully unit-tested, every single function doing exactly what it is documented to do no more, no less ... it won't stop the problems.
For example: there was a recent change to allow ships from non-resident factions to appear in systems. This makes perfect sense: you see the resident factions' ships arriving from hyperspace and departing to other systems, so you should be able to see them in those other systems. The code to do this has been perfectly bug-tested (well, let's assume that, it looks okay anyway) and is generating exactly the proportions of resident, nearby and distant factions required by the design specification.
This change has, however, broken many sorts of massacre missions, by diluting the resident factions to the point that they don't appear in sufficient quantities to reasonably complete the mission within the time limit. The massacre missions themselves are still being generated to the specification, too.
This is a problem - that sort of issue is not something you can usefully unit test for (all the units work correctly) and it's not something you can practically acceptance test for (because there are so many components and so many interactions between them you'd be accepting a months-long full code freeze before each release) - but it's basically not a solvable one without either hiring literally thousands of QA staff or developing AI agents able to play the game to run tests in an automated fashion. (The latter would make great persistent NPCs on their days off, of course)
It also means that certain types of bug can end up with an impact way bigger than the actual effect despite the actual bug being basically identical to another unnoticeable one. Can't get Exquisite Focus Crystals from missions? Well, that's a bunch of engineering upgrades which are unobtainable. Can't get Refined Focus Crystals from missions? No-one notices. Can't get Flawed Focus Crystals from missions? That was a popular and intentional change when it was implemented!
We see this too in the C&P reforms and Frontier's efforts to get them right. They touch virtually every aspect of the game, there's a whole range of competing opinions on how much crime should be punished, every simple solution leaves loopholes big enough to fit a T-10 full of contraband through ... complex solution themselves risk surprising players. That's not a coding issue. You can sit down with a piece of paper and the assumption that every single piece of code will work perfectly every time and still not solve them.
None of this, of course, really gets solved by going to Elite 5 ... and even for those bits which would be, what happens to Elite 4 in the five years it takes to get Elite 5 up to rough feature-parity with Elite 4? Feature freeze, bugfixes only? Turn it off entirely? Keep developing it as well until Elite 5 finally catches up?
[1] No-one sensible would think trying to develop "multiplayer Elite" was a good idea. "singleplayer Elite" is a tough enough problem without adding "well, what if the player wasn't the protagonist" to it.