v3: Testing story
Simply put--we need a better testing story. Although testing is theoretically possible, it is an enormous PITA and does not lend itself to a nice unit testing experience. To test a tiny isolated part, you have to build the world around it.
We made the trade-off of state being implicitly tied to Paths (better API & perf), while losing the fundamental testability of a pure function. I personally do not think this trade-off has been worth it.
In 3.0 we should re-evaluate our testing story and try to find a proper middle ground. We have spiked on the idea of memoizing the state stream to allow us to achieve testability while maintaining the performance benefits of the prior approach. There was issues with wiring up our composable apps with this approach, but I think it is still doable.