The return deferred.promise statement is encapsulated in q.js;
https://github.com/jouni-kantola/q/blob/chain/q.js#L1604-1606