Я походу понял, в случае:
if (array1[i] === array2[i]) {
return true;
}
При первом true он возращает true, а в этом случае:
if (array1[i] !== array2[i] || array1.length !== array2.length) {
return false;
}
когда он встречает первое false Он уже возращает false, что логично.
Может объяснил непонятно, но вроде допер.