You can give items a tag yourself.
Automatic tag generation can still be useful. If you're given an automated tag, you can get it's item, it's parent's item, etc., and get the path yourself this way.
There's another neat trick you can pull. For instance, you can store your objects flattened in a tree item. Whatever it is (references, classes, queries, etc.), if it can be flattened, you can put it in the tree item child text. When the item is given, it's easy to get the object, unflatten it. This way the tree can become sort of a container for your application data. The (automatic) tag becomes irrelevant.
It's a bit of a puzzle. You'd almost always need an API to wrap the tree API. Designing this API is hard, especially when you have no idea about all the little secrets of the tree control.