It is indeed very close to how you would model redux apps. Interesting that you mention that your controllers don't have read access to store(s). That is actually very common with redux-thunk or redux-saga.
oCaml/Reason can compile to JavaScript making it posible to write everything in one very powerfull language. In the near future we can probably also use jsx.
Seems like an improvement over using node and React.
Are there any numbers comparing pre-rendered React versus React communicating with a JSON Api?
It seems to put a lot more stress on the server which can neglect the (theoritical) speed improvements
Not sure, but the time cost is the latency of loading an almost-empty index.html, loading and parsing your app, _then_ it starts running and hopefully fast doing some API requests and then it's off and good to go. Subsequent JSON-API-requests-and-then-rerenders should be pretty fast indeed, but those aren't the point :)
You want to server-side render React apps so that while all that happens, the app already works.
Every backend architecture should account for having multiple machines. What are you going to do once you get enough traffic that one machine can't handle it?
When "sprinkling Javascript" turns into "making sauce for the spaghetti you've been cooking", it's probably time to consider React or something similar.