There is a subtle annoying part about the getDOMNode APIs. They cache children.

Both getNodeForPath and findAncestorWithMissingChildren assume that if children are cached, they've already been sent to the host, and won't be sent again. Of course if you bail out, they won't get sent and this assumption breaks. You should probably just send the change log here.