Hai bisogno di aggiornare la struttura dell'albero (cioè spostare un tag su un altro genitore)? Se ciò fosse possibile, l'approccio integrato diventerebbe difficile e l'approccio relazionale/normalizzato avrebbe più senso.
Probabilmente memorizzerei i tag stessi nel documento (incorporato), ma se c'è qualche possibilità di dover spostare i nodi dell'albero in linea, memorizzerei la gerarchia in un altro documento. Le query non devono essere lente, se prima si appiattisce la query di ricerca (secondo l'albero corrente) e quindi si cercano quei tag. Questo approccio probabilmente non si adatta bene se la query di ricerca appiattita finisce per contenere centinaia di tag (quanto è alto il tuo albero?).
Se i tag non possono essere spostati ai nuovi genitori (o solo da te, durante la manutenzione programmata), vai avanti e incorpora l'intera gerarchia.