Дело в том что lenta - это тоже промис. Когда ты возвращаешь промис из промиса, то then "применяется" к возвращённому, и, соответсвенно, ждёт результата. Если же ты возращаешь простой объект, то результата lenta никто не ждёт и в _.flatten(results.fd) вместо полученного результата попадает ещё не выполненный(pending) промис.
var lenta = Promise.mapSeries(_.range(0, 1), function() {
return feed.get();
})
return {id : someId, fd : lenta}
->
return Promise.mapSeries(_.range(0, 1), function() {
return feed.get();
}).then(function(lenta){
return {id : someId, fd : lenta}
})