I was thinking the same.. However, it seems that both (client or server) seems to work ok ;)
seems to find a lot pages, but nothing definite. One page i's reading stated that doing state saving in server is faster, other one said the doing it in client can prevent some problems from occurring...
My main reason for trying server side state saving is due to huge size of state information that's being kept in the html form in the hidden fields in the browser.
http://wiki.apache.org/myfaces/Performance is one of the most intresting ones.
Well, most AJAX apps keep their state in client (but in quite different format than what's being done in JSF), but never submit everything at every request back to server. Apache's Trinidad (formerly Oracle ADF) has some kind of delta-protocol for client-server state synchronization. This adds complexity, but maybe it's wise on the performance side.
Gavin told me that he strongly recommends client side state saving. Also, there's a bug in the way that ajax4jsf interacts with Seam when you use server side state saving. The downside is that this state information can be quite large. :(