Если array и object создаются от прототипа Object, то почему object не наследует метод length?
При наследовании классов (Array наследуется от Object) в классы-потомки могут добавляться новые свойства и методы. Ничего особенного в этом нет.

есть же.
Да и в целом, как таковых массивов в jse нет, есть NodeList и Object, просто привычнее и понятнее называть NodeList массивом, так как перебирают его так же, как и массив в других яп