There indeed is complexity, but a lot of the projects that are created to deal with that complexity that gain traction are made by people who don't have much experience in general, or lack exposure to non-frontend programming, so you end up having to deal with a lot of half-baked stuff. It's kind of a lethal cocktail.
Ui is practically a problem solved (from the technical perspective). The complexity you’re talking about stems from trying to solve the problem with the wrong technology (the DOM). Laying out text for a document is fundamentally different from creating an application interface. An things that are easy to do in any UI toolkit (from GTK to Android) can only be hacked in the DOM. Things like layout constraints (between two components) and lists.
This is completely wrong. The DOM is an implementation detail. All the native toolkits are moving to the same kind of declarative APIs that were pioneered on the web because it's just a lot easier to think of UI as a function of state than it is to get 100 imperative updates in a row right.