Ответ 1
nextElementSibling
всегда возвращает элемент. nextSibling
может возвращать любой вид node. Они одинаковы для вашего примера, но отличаются в других случаях, например:
<p><span id="span-01">Here is span-01</span>
Some text at the top level
<span id="span-02">Here is span-02</span></p>
В этом случае document.getElementById('span-01').nextElementSibling
есть span-02
, но document.getElementById('span-01').nextSibling
- это текст node, содержащий "Некоторый текст на верхнем уровне".