Мне кажется всё логично.
Получается, массив кагбэ растянут до длинны length, но это не значит что в этом случае в массиве все ячейки должны быть заполнены. И это не значит, что ячейка должна получать значение по умолчанию. Это так же касается начальных и конечных ячеек:
[,,,,1,2,3,,,,]
То же самое:
var arr = [];
arr.length = 20;
arr[5] = 1;
arr[6] = 2;
arr[7] = 3;
Цифры могут не совпадать, но суть должна быть ясна.
Всё в порядке