This pattern sure is strange. But to answer your question on the above pattern losing the benefits of virtual DOM, I don't think that would be the case. As you can see inside the render function; we're calling the render prop of ReactDOM; and this would still do the "diff" step with the actual #react-app node.