Om has extra constructor syntax and functions for dealing with cursors; that's it. I get the initial perception that Om is "over-engineered" but it just isn't.
React/Clojurescript is a funny beast. On the one hand clj is all about immutability and referential transparency. On the other hand FRP has state baked in: there has to be something to watch, after all, and even paradigms that try and sidestep this conceptually by saying "everything is a stream" (flapjax) end up dealing with state in terms of how the streams interact, under what conditions, etc.
I like the Om model because it says: OK, we're going to have to deal with state, no way around it. Is there a way we can bring sanity to the process?