The problem typically arises when one is trying to cope with React's lifecycle methods, those are not that compatible with concepts of Observables or Cells. Oftentimes you would emit before component mount physically getting the stream and that crashes. Transactional model would have to be taken into account. Moreover, existing lifecycle system often leads to introducing a new lifecycle method hack which is out of the scope of React component itself, and is more of a monkey patch. So, it isn't that easy as contrary to the name; React is not that reactive, at least not in the sense of typical FRP approach. Its obviously best to abandon these quirks for the sake of stateless components entirely, which would bring us to better composability.
It can be done, nevertheless. With JSX in mind its also more complicated as it very often automagically makes wrong assumptions and limits your options. Cyclejs for that matter (correct me if I'm wrong TylorS), decided not to use JSX ever at all. However, with the way things currently are, JSX seems to be preferable abstraction for developers which makes non-JSX solutions less attractive. I think abstracted how it is, Elm is doing fine with html tags as regular functions.
Just thoughts on the actual React architecture, as its been said, the underlying paradigm would have to change to allow bigger flexibility.
EDIT: So, the ultimate question is why do we need React at this point? Only for the sake and the name of it? Or it has something else to offer? Diffing VDOM algorithm? That can be done without React, easily! All React's advantages are really 1) Lifecycle methods 2) VDOM with diffing algorithm and 3) JSX. As a long time React user I don't think it has much more to offer.