Finally, my app bundles in less than 1K of Gzipped javascript, including a fully reactive immutable Store implementation. WIP at npmjs.com/package/@lauf/…
Simple rule for javascript. If you return the same thing as the accumulator every time, don't use Array#reduce(...).
Use a for loop. Simpler, more performant, more readable.