A nodeé o nome genérico para qualquer tipo de objeto na hierarquia DOM. A nodepode ser um dos elementos DOM internos, como documentor document.body, pode ser uma tag HTML especificada no HTML, como <input>or, <p>ou pode ser um nó de texto criado pelo sistema para reter um bloco de texto dentro de outro elemento . Então, em poucas palavras, a nodeé qualquer objeto DOM.
An elementé um tipo específico de, nodepois existem muitos outros tipos de nós (nós de texto, comentários, nós de documentos, etc.).
O DOM consiste em uma hierarquia de nós em que cada nó pode ter um pai, uma lista de nós filhos e um nextSibling e previousSibling. Essa estrutura forma uma hierarquia semelhante a uma árvore. O documentnó teria sua lista de nós filhos (o headnó e o bodynó). O bodynó teria sua lista de nós filhos (os elementos de nível superior na sua página HTML) e assim por diante.
Portanto, a nodeListé simplesmente uma lista de matrizes nodes.
Um elemento é um tipo específico de nó, que pode ser especificado diretamente no HTML com uma tag HTML e pode ter propriedades como a idou a class. pode ter filhos, etc ... Existem outros tipos de nós, como nós de comentários, nós de texto, etc ... com características diferentes. Cada nó tem uma propriedade .nodeTypeque relata que tipo de nó é. Você pode ver os vários tipos de nós aqui (diagrama do MDN ):

Você pode ver um ELEMENT_NODEé um tipo específico de nó em que a nodeTypepropriedade possui um valor 1.
Portanto, document.getElementById("test")só pode retornar um nó e é garantido que ele seja um elemento (um tipo específico de nó). Por isso, apenas retorna o elemento em vez de uma lista.
Como document.getElementsByClassName("para")podem retornar mais de um objeto, os designers optaram por retornar um nodeListporque esse é o tipo de dados que eles criaram para uma lista de mais de um nó. Como esses elementos podem ser apenas elementos (apenas elementos geralmente têm um nome de classe), é tecnicamente um nodeListque possui apenas nós do elemento type e os designers poderiam criar uma coleção com nome diferente elementList, mas optaram por usar apenas um tipo da coleção, continha apenas elementos ou não.
EDIT: HTML5 define um HTMLCollectionque é uma lista de elementos HTML (não qualquer nó, apenas elementos). Várias propriedades ou métodos no HTML5 agora retornam um HTMLCollection. Embora seja muito semelhante na interface a nodeList, agora é feita uma distinção, pois contém apenas elementos, não qualquer tipo de nó.
A distinção entre a nodeListe um HTMLCollectiontem pouco impacto em como você usa uma (até onde eu sei), mas os designers do HTML5 agora fizeram essa distinção.
Por exemplo, a element.childrenpropriedade retorna um HTMLCollection ativo.