¡buenas!
es de mi parecer que ningún intento te funcionará como tu quisieras. primero hay que tener claro que
files, aunque parece ser un array, en realidad no lo es.
files, como muchas de las colecciones en DOM, es una colección especializada del objeto FileList. según el prototipo en chrome el único método que incorpora es
item el cual se utiliza para accesar a los elementos individuales. adicionalmente, aunque logres tomar prestado los métodos para manipular arrays,
files no se verá afectado. es decir,
files es un tipo de colección "inmutable" frente a código javascript pero a la misma vez "activo". por tanto, un código como el siguiente no produce el efecto deseado.
Código:
[].pop.call(files); // tomar prestado el método pop de los arrays;
console.log(files.length); // seguirá teniendo la misma longitud;