1) this technique doesn't work if you need to keep part of the DOM (e.g. a focused input or a running video)
2) this technique is O(n) in IE
After replaceChild(), the inserted tree must be analysed in context for CSS, layout and rendering. That will take O(n) unless parts can be skipped.
Do you mean that IE does a separate CSS or layout calculation for each node as they are inserted one by one?
What kind of change? If you are talking about repainting the visual CSS rendering to the viewport that isn't the DOM. That is your hardware. This is why modern browsers use GPU acceleration.
Changes to the DOM are changes to the DOM tree and the markup represented by that tree. These changes can have second order performance implications if the change to the tree results in adding/removing many nodes of it results in execution of events, which is outside the DOM, that result in the execution of additional DOM instructions.
> If you render your templates directly to the DOM you might start a rerendering chain that needlessly wastes performance.
I have never encountered this. Could you provide an example?