Why is it that when you start scaling your workflows in n8n, they start getting messy? At first it's a clean build, easy to maintain. But then you put it into production. What happens next? Well, you of course run into problems you did not think of. So now what you're doing is fixing those problems as they come up.
A few rounds of this, and you have created a Frankenstein flow that tries to cover it all. There should of course be an easier way, but truth be told, if you code, you'll run into the same issue. Take a look at META's API and you'll understand pretty fast what a messy codebase looks like. I've run into so many instances where I'm about to use an API from META, and realize that it does not work the way they're talking about. Because a few years ago they made some changes that they did not document.
So yeah, this is a running problem. The best way I've figured out to solve this is experience. The more you build, the more you're aware of edge cases and handle them before they come up.