@benjamn Yeah, my theory and I kind of found it hard to express it briefly...  (fact, so to speak) is that innerHTML behaves better when it's used on an element that is just created (i.e, it's not updating existing DOM), so it's works well when creating nodes, but not when updating nodes.

However, from my testing it seems that in fact has to do with the node being added to the DOM and not with just having been created... and this virtually no-op statement, makes the DOM behave as if it was just added to the DOM (I guess, it's as if it was removed and then added).

I could try to improve the comment with this, but as I said, this is only a theory, I only know from experimenting that it works when re-adding a node like this, as to why that is technically, I can only speculate at this point.