Não é tanto um bug como um caso de expectativas não atendidas. Apenas o _id de nível superior recebe um valor automaticamente. Quaisquer _ids incorporados devem receber valores atribuídos pelo código do cliente (use ObjectId.GenerateNewId). Também é possível que você nem precise de um ObjectId na classe Address (qual é o propósito disso?).