Почему не срабатывает данное условие — объясните?
У вас сначала выполнится'area' || 'base' || 'col' || 'command', получается у вас всегда проверяется if (els[i].tagName.toLowerCase() === 'area') { return; }
Чтобы сделать, как вы этого хотите, можно сделать такconst values = ['area', 'base', 'col', 'command'];

if (values.includes(els[i].tagName.toLowerCase())) { 
    return; 
}
'area' || 'base' || 'col' || 'command' на самом деле равняется 'area'
что бы сделать то что вы задумывали надо было написать так:if (els[i].tagName.toLowerCase() === 'area' || 
els[i].tagName.toLowerCase() ===  'base' || 
els[i].tagName.toLowerCase() ===  'col' ||
 els[i].tagName.toLowerCase() ===  'command'
) { return; }
но более оптимально сделать такlet items = new Set(['area', 'base', 'col', 'command']);
if(items.has(els[i].tagName.toLowerCase())) {
 return;
}