I have an app that does that. What I did, however, was make each tree node a hyperlink rather than coding navigation logic in a backing bean.
You should be able to use commandLinks, but in my case, I used raw URLs, since I wanted them to be bookmarkable. I used PrettyFaces to handle the bookmarkable URL requests.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.