You're trying to muck around in JSF's internals. People are way too quick to do that. Most of the time, they're substituting a complex unreliable do-it-yourself solution for something that's already possible using the existing framework in a way that's much simpler and more elegant - and already debugged.
Views are not referenced by "id"s. They are referenced by a combination of URL and context. If you were to attempt navigation by brute-force manipulation of the digested view trees, you wouldn't have all the context, since part of the context is in the Model (backing beans). It just gets worse when you realize that the view state may have been serialized out to the client and back, so there's no permanent in-memory component to reference.
You could probably track progress using a PhaseListener or ServletFilter with a little help from PrettyFaces (for bookmarking). However, before you rush off and do all that, check the existing extension tagsets. I think either RichFaces or one of the MyFaces extension tagset may have a "breadcrumb" component. and if not either of them, possibly one of the other systems tat I'm less familair with. That could save a lot of time and work.
An IDE is no substitute for an Intelligent Developer.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: JSF -- Capture Target View ID after FORWARD by Navigation Handler