I had managed to get it working by doing: s:link view="/login.xhtml" action="#{identity.logout}" value="Logout" />, basically that logs you out and displays the logout message that our front end guy wants, however until I had put BUILD_BEFORE_RESTORE in place, it kept giving view state exceptions when I tried to log back in.
BUILD_BEFORE_RESTORE does something very funny, in that I found it broke quite a lot, like you I can't remember the details as I did quite a bit of digging into it, to see if I could create a work around.
I guess I will have to create a workaround for the messaging bit, so when one logs out, one is redirected to the login page and an action is run to display the appropriate message (because of the funny way we display messages, due to how our front end guy wants it done, I wrote a JSF tag that displays either INFO, WARNING, ERROR + FATAL (error and fatal together), so we can override messages easily enough).
As for JSF 2.0, I'm very keen to have a play, I have done my best to take us away from Spring to Seam by porting all our DAO's and services to EJB, then starting this new project from scratch with Seam (our old buyer portal is still in spring and our new procurement tool is being built with seam). It's not been without it's pain points, for one I would love to see better integration with netbeans as eclipse sucks with maven (and I'm not it's biggest fan) and the other is taking spring developers and trying to get them used to the idea of seam has been a very interesting experience for me as a manager, but a good choice nonetheless.
I'm hoping the transition to Seam 3.0 and JSF 2.0 will be as painless as possible, which is another reason I'm trying to get involved in the dev list, as it seems it's the best place for information on it and over time I want to see how I can contribute to it.