Le query in MongoDB non restituiscono documenti secondari (o, come nel tuo caso, documenti secondari di documenti secondari). Abbinano e restituiscono i documenti della collezione. La forma dei documenti può essere leggermente modificata dalla proiezione, ma è limitata. Se vuoi trovare comunemente l'ultimo tag, probabilmente vorrai fare in modo che i tuoi documenti rappresentino i tag. Avere un array in un array è generalmente una cattiva idea anche in MongoDB.
Se si tratta di un'operazione non comune e che non deve essere particolarmente veloce, puoi utilizzare un'aggregazione:
db.modules.aggregate([
{ "$unwind" : "$svn_branches" },
{ "$unwind" : "$svn_branches.tags" },
{ "$sort" : { "svn_branches.tags.updated_at" : -1 } },
{ "$group" : { "_id" : "$_id", "latest_tag" : { "$first" : "$svn_branches.tags" } } }
])