Dynamic NodeLists have a significant memory and performance cost. Static NodeLists are basically just under-powered arrays. We should just return Node arrays from any new APIs that return a list of Nodes. I'd like to see NodeList get similar treatment to hasFeature, i.e. a note that it not be used for new APIs and possibly even the explicitly list the APIs allowed to return them.
I don't see the Dynamic/Static distinction in DOM4 or the HTML spec. Is this specified anywhere? For reference, this came up in WebKit with some new Regions APIs https://bugs.webkit.org/show_bug.cgi?id=80638.