One more minor disadvantage is that fetch can't make synchronous requests, which means it can't be used to implement, for example SCORM directly on the server... though you could create a caching interface that did use fetch.
LOL at the reference to npm being "oh, like Bower" which is funny because you need node+npm to install Bower... something I always found incredibly amusing. and the biggest knock against Bower in the first place.
The rest of the rant is a little funny, but seriously... for the use case, jQuery would probably be fine... I'd probably use babel with the polyfills, and run through that.
It looks like there's definitely a push to get the async bits all in time... I think object rest/spread and object props are both pretty important in terms of cleanliness and usability.
If you're targeting reusable components, then state should be left to the user of your component, or isolated internally via whatever mechanism you like, depending on the component.
That said, some will look better or worse over time, and component libraries will vary. I mean there's Bootstrap, Semantic UI, Material UI and many other UI component libraries. How well a given one fits into the react space, or even your own application will vary. That's the nature of programming.
That said, in 20+ years of developing web applications, React is the first (of very many) web frameworks that felt like the right way to do components. I'm not expecting that it will not eventually be replaced, only that of what I've seen lately, nothing is better enough to replace its' usage... though one might consider another JSX based implementation that's compatible (preact-compat). I also remember many the libraries that were popular before jQuery came about (Prototype, mootools, etc).
If you don't have some form of state management, then you don't have an application... there are some abstractions that may work better than redux, such as the many graphql implementations that have been coming out.