Research into applying lenses to the DOM isn't news: my undergraduate honors thesis was about using lenses as a view mapping for functional reactive programming (FRP) on the DOM. See <
http://www.cis.upenn.edu/~mgree/papers/ugrad_thesis.pdf> for the barely readable document; <
http://www.cis.upenn.edu/~mgree/ugrad/lenses/> has the slightly more legible implementation. No one has gone to the trouble of implementing the more recent re-conceptions of lenses (e.g., edit lenses---see the work of Daniel Wagner for what's new in lens-land.). I think that it would be very fruitful---and wouldn't be particularly hard.
This is the first I've heard of Facebook React, and I'm curious to see what their diff algorithm is. In <
http://www.cis.upenn.edu/~mgree/papers/icfp2010_matching.pdf>, we found that choosing a diff algorithm presents difficult trade offs. I think the advantage of manipulating the pseudo-DOM in Haskell is that Haskell has a type discipline that's designed for working with complicated trees. Since the pseudo-DOM structure is immutable, monads don't enter into it---it's just good old functional programming.
I'm very curious to see what the programming/engineering community makes of lenses and FRP in general. One problem we encountered when developing Flapjax <
http://flapjax-lang.org/> was that developing in FRP tends to be "all or nothing". But since developers are already willing to put up with callback hell, who knows?