If you just want an interface for building up an AST using composition, you can do this without React. You can even continue to use JSX—it's as simple as having a function definition to create AST primitives and have a JSX pragma that calls into it.
What React is excellent at is taking two trees and finding a set of mutations to transform the nodes from the first tree to the second—with utter disregard to how those trees came to be. That's what the renderer provides—the set of operations that can be performed on nodes.
I don't see how the actual React part can be used here. Even the suggested uses are all single-pass operations where this diffing will never come into play.
That said, to me this project (in its current state and with the goals expressed) would be so much simpler and more efficient written as a JSX pragma, without the React part.
Maybe there's more to the React functionality in this project that I'm missing. I don't want to discourage the author from doing something with React for this project—there's many directions you could take this that could make excellent use of React.