The JS community has gone way overboard on factoring everything into a dozen little submodules, IMO.
Mercury has the classical issues of wrapper models too, whereas with something like flux or similar, you can easily work with good ol JSON.
virtual-dom is a pretty nice lib though, and a strong foundation for people willing to create their alternative, opinionated lib.
Decomposing your code into modules is step one. Making the interface between your modules generic enough to easily replace is the next problem, but if your code is a monolithic blob in the first place that's not going to be possible.
My main issue with modularity in JavaScript is the lack of strict typing, because you won't know if your interface fits correctly until runtime - which is why I've been looking into TypeScript and Elm recently.
How much time did you spend setting up the plumbing for the project? That's key.
Everything will just work with defaults. Not like this travesty: https://github.com/kriasoft/react-starter-kit
All it will really take is one person to merge, say, React with a boilerplate-reduxed Flux framework, a REST library, and a handful of other must-haves, under a single, new product name. Let's call it "Rimble". When people realize they can "import { Component, Actions } from Rimble" we'll see a shift towards monolithic frameworks and the ball will start rolling back in the right direction.
Can you justify why 'monolithic frameworks' is the right direction?
Especially by using ES6. Also these guys made some cool addon libraries that are as small as the core library.
The only thing I dislike is that the core library is a single source file. Why do people create source files with < 1000 lines..
check out vidom, kivi, citojs, domvm (mine), etc...
domvm is actually one level above pure vdom libs and a level below frameworks. it offers a very fast, stateful and reusable view layer over a vdom diffing engine. it was written to solve some architectural disagreements and speed issues i had with using Mithril MVC for several projects.
I'm using mercury [0] in my current frontend project for this purpose. Most of the features of React, none of the commitment. Every single component is interchangeable; the core repository is simply an index.js requiring other modules, which can be depended on individually if you're not looking for a kitchen sink solution.
[0] https://github.com/Raynos/mercury