A população profunda foi adicionada no Mongoose 3.6. https://github.com/LearnBoost/mongoose/issues/1377#issuecomment -15911192
Para o seu exemplo, seria algo como:
Owner.find().populate('shelves').exec(PopulateBooks);
function PopulateBooks(err, owners) {
if(err) throw err;
// Deep population is here
Book.populate(owners, { path: 'shelves.books' }).exec(callback);
}