The GTK developers did recognize that a lot of this stuff was integral to a UI toolkit, and so most of the functionality in the various libgnome libraries was moved into GTK for GTK3.
And now apparently we're going backward again. No, I get, it's not the same situation. They are focusing more on "design language" than functionality: for example, the printing functionality that was moved from libgnomeprint (or whatever it was called) into GTK3 is staying (which makes sense), but menu bars (which have been in GTK since the beginning) are going away because GNOME doesn't use them anymore.
But that's a part of the problem; it seems like their rubric is "if GNOME doesn't need it, then it should be deleted"[0], coupled with the idea that many new design language elements should be GNOME-only and live in libadwaita, even if a more general audience would benefit from those elements.
As a developer of GTK-based applications for a good 20 years now, I honestly can't recommend GTK for new projects outside the GNOME umbrella. The problem is I'm not really sure what to use instead. Qt is really the only other major cross-platform toolkit, and does seem like a more stable base, but I don't want to do C++, and bindings for other languages aren't very ergonomic. (And toolkits like wxWidgets are just abstractions on top of other platform libraries.)
What I really want is a Rust-native UI toolkit library that does its own drawing, but can consume GTK3 themes. To me, the big issue is that of "native look", and I don't want Yet Another UI Toolkit that allows people to build apps that don't fit into my desktop at all.
[0] Note that quite a few things, like GtkDialog as a notable example, didn't get removed for GTK4, but have been deprecated and will be removed in GTK5.