DHTML DOM Weirdness

I was playing with some Python code that monitor and change currently displayed web page in IE using DHTML DOM API and ran into some weird behavior.  Specifically, it won't let me insert child elements into an element without a parent.  Here is what my code looks like:

itemNode = doc.createElement('div')
textNode = doc.createTextNode(item['description'])
itemNode.appendChild(textNode)

This fails because itemNode is parentless.  To make it work, I had to insert itemNode into either the document or a document fragment like this:

itemFrag = doc.createDocumentFragment()
itemNode = doc.createElement('div')
itemFrag.appendChild(itemNode)
textNode = doc.createTextNode(item['description'])
itemNode.appendChild(textNode)

This is clearly weird behavior, particularly since I participated in the design of W3C DOM API Level 1 and 2.  I just don't recall this sort of behavior being brought up for discussion while the DOM specs were being written.  If it did, I would have demanded the API be changed to make this assumption explicit like adding parentNode parameter to DOMImplementation.createXXX() methods.  Did I forget something or is this another case of Microsoft's inventive interpretation of specs?

FYI: Python code above is part of code used to display RSS feeds on IE.  Its working well now.