I happen to like JS, more so with the extra ES6+ niceties, but I can see the appeal of a more purely functional language without some of the extras.
And no, imho no solution is perfect.. tbh, if it's public facing I'd just prepopulate the store server-side with the essential portion of data and let the rest populate client-side... that would take care of the non logged in user case, and account for search engines... the rest can run client side. In the end, it's up to the author.
I also happen to really like react in general, and if full server rendering were desired, I'd go the redux-universal route. I usually use the thunk methods with async functions anyhow, so that allows promise resolution to work in that way.
To each their own though.
yeah, React is cool and I used it for two years and I'm still using it. I just think it's always limited because of JavaScript and Facebook. While is ClojureScript we can try more.