I have used redux quite extensively and I aknowledge the insanely steep learning curve at the start, but it solves your dataflow-problems completely.
The only internal state I had left afterwards were little visual things, like is this element expanded.
High development pace is kind of an issue, but didn't cause problems for me personally. I also only updated when there was a new feature I wanted in a new version.
Poor documentation actually got me a few times and I had to use the waybackmachine to see the documentation for the version I was using, so yeah, definitely valid point.
SEO wasn't a concern for me, since the site was an application frontend to a SpringBoot backend, not intended for the public, so I can't say anything about that.
Too many smaller components: I had no problem with that, a component only became one, if it's exact functionality was or would be required on multiple places, so that depends on the programmer.
The large amoung dependencies is a good point. It seems to be that most libraries depend on way too many others. Sometimes for the smallest things. To the point that things that should be a 3 liner, adjusted for the given situation (e.g. leftpad) is a library. But that is a fault with the amoung of programming beginners in JavaScript (at least that's my theory)
Easy to lose the flow of data: Non-issue with redux, if you have standards for things like form-states.
Can't be too flexible: Please elaborate on that one, since I had never a problem with flexibility, especially when it comes to rendering different components.
Sort: Trending