Because, in the end, what, semantically, is the difference between:
runqueue([func1,func2,func3,func4]); and func1().then(func2).then(func3).then(func4);
No significant difference at all, really. except the promises permit you much more flexibility and options.