When you say "the database is fairly prone to updates", do you mean that the tree itself is prone to updates or only other attributes of the entities are? If the tree is not prone to updates, then maybe you can have a pointer to all the grandparents in addition to the parent itself? This would require an additional lookup when adding a new node and would need an update to all the child nodes if a node's parent is changed. But if these operations are fairly infrequent, this approach might work. Of course, this might not be usable if you need attributes other than the primary key from the parents (and would further complicate it otherwise too if the primary key can be updated).
This was what we had done in our graph database model by building an index structure (LWI) that indexed all possible paths in the database.
But no, in this case this does not work

The structure is also prone to updates as much as the data itself. And the entities are not necessarily "labeled" where the number of labels is far lesser than the number of entities, so that they can be somehow used..