x-yuri,
Эх, я не преподаватель, и объясняю путанно.
Представьте себе: в браузер IE 6 добавляется плагин SVG, который XML. На странице есть собственно страница и DOM от неё и SVG и его собственный DOM. И тут мы пытаемся вставить элемент из SVG в HTML. Скажу сразу, это не получится. Но как проверить, а вдруг, можно?
Если
element instanceof HTMLDocument
, то, получается, что элемент из какого-нибудь
xhr.responseXML
тоже вставить нельзя. А, вот, его, как раз, можно (если я ничего не путаю).
Чисто теоретически, нужно проверить, позволяет ли имплементация принимающего документа принять элемент определенной имплементации. Ну, в смысле, человеку можно перелить кровь другого человека, а, вот, собаку к ноге пришить — не вариант.
W3C (WHATWG) — ужасные перестраховщики. Может быть, так и надо, если пишешь нормативную документацию для того, что будет работать отныне и вовеки веков.
И они намеренно абстрагируются от имплементации (так и пишут, мы, мол, не классы описываем, а интерфейс, и мало волнует, как именно вы заставите это работать). А, значит, никакой нормативной документации про имплементацию написать не могут — не их епархия.
К DOM3, конечно, разродились абзацем, ну, который про
importNode
. Но, ведь, DOM начался с 1 версии. И там, по всей видимости, решили, что раз мы не можем обеспечивать целостность всех объектов
класса интерфейса DOM, то будем обеспечивать хотя бы внутри одного. Я имею в виду document, рассматривая все ноды «внутри» него так или иначе его свойствами.
Ладно… Надеюсь, я пояснил, а не запутал еще дальше.