I say this as a software developer (who is no where near the skill level of a dev on the Apple payroll working on iOS)....
I think the problem is too much code that has been touched by too many hands over too long a time period.
As a developer, eventually the code you are working with starts to fall into "the mind of god". In other words, the code becomes too much for the human mind to follow. You eventually have millions of lines of code, spread across thousands of methods/procedures/subs/functions, written by so many different devs in so many different styles, written over so many years of time.
As a developer, once this happens, you become petrified of changing ANYTHING. Even the most simple code changes scare the hell out of you because there is a chance what you just changed will break something a developer 10 years ago wrote in a completely unrelated function.
I suspect that this is the state of iOS..... I think the codebase is probably such a tangled web at this point that they simply CANNOT push bug-free updates anymore. Every time they make a change, something somewhere breaks.
Part of me thinks this is actually a big reason they are making a big deal about the Apple Silicon version of MacOS being "written from the ground up" for that hardware.... they likely either did a huge rewrite (what we call in software dev "refactoring") of MacOS for ARM, or they were otherwise able to purge millions of lines of old code.
I would not at all be surprised if Apple at some point is forced to do a complete rewrite of iOS.... these bugs are becoming more and more frequent, and I suspect that this will be the only solution to the problem.....