Например, чтобы забыть это хак(считаю это хаком):
function f(x, y, z) { }
var args = [0, 1, 2];
f.apply(null, args);
With ES6 spread you can now write the above as:
function f(x, y, z) { }
var args = [0, 1, 2];
f(...args);
Есть очень много клевых фишек, для которых сейчас нужно городить велосипед. Уже весь код велосипедами завален и на велосипедах строится. В es5 нет возможностей для написания вменяемого кода, который бы не погряз в лапше.
Пусть сейчас лапша будет на выходе, но я хочу писать на новом языке, а не на устаревшей недоделке, состоящей чуть более чем полностью из костылей.
Не понимаешь зачем надо, посмотри на Python, на CoffeScript, может дойдет.