Buscando una explicación para esto último encontré que por una particularidad extraña el array vacío (o con un elemento que se evalúe como false) se evalúa como false pero al convertirlo explícitamente a Boolean se vuelve true:
Código Javascript
:
Ver originalconsole.log([] == false);
console.log([0] == false);
console.log([""] == false);
console.log([null] == false);
console.log([undefined] == false);
console.log(Boolean([]));
console.log(Boolean([0]));
console.log(Boolean([""]));
console.log(Boolean([null]));
console.log(Boolean([undefined]));