>GTK3 regressions from a GTK2 perspective
It's a bit odd to read this sentence. GTK2 got its last minor release over 10 years ago, and was EOLed 6 months ago. It's a dead project. GTK3 is also feature frozen as of 6 months ago, and will not see any features brought back from GTK2. If you want to get some of these issues fixed, it would be best to start submitting patches to GTK4, or trying to find other solutions that will work there. Or, you could try to revive some of that GTK2 code yourself, although I wouldn't recommend it -- a lot of that code is very obsolete.
>Horrible GTK3 / GNOME UI design is leaking into Ubuntu Mate applications in 20.04
This is a design decision made independently by the MATE developers to update their app to a different design, no? I don't see what GNOME has to do with this. Regardless of your feelings on it, at least one person seems to have thought it was the right decision.
>And then you have the terminal Termite
I remember this issue from last time it was discussed, I think the Termite maintainer overreacted as a result of a very normal technical disagreement. I don't really witness them rejecting patches any more than any other project. I also disagreed with that developer's decision to fork on a technical level, I thought that was unnecessary and could have been avoided.
>But the negatives in short are poor documentation, memory leaks, you end up only using the approved plugins (if you don't like to restart your desktop more than once a day) which of course negates the whole idea of a plugin system.
Some people are actually working on the docs, please contribute if you are able: https://gjs.guide/
There have been issues with memory leaks in the past, but those are bugs that can pop up with any garbage collected language. I'm not sure what you'd expect them to do, besides do the normal thing, and fix the individual bugs whenever possible.
I hate that I always have to say this, but there is no alternative to only using approved plugins, on any plugin system. I don't know what you mean it negates it. In Javascript the crashes and hangs are usually from unhandled exceptions and infinite loops -- This is even worse with a C or C++ plugin system, because those are memory unsafe and can cause bad segfaults. If the javascript is causing segfaults then that's probably a bug that should be reported.