hi.
yes jsf is state full.using FacesContext you can have per-request state information related to the processing of a single Java Server Faces request and server side view is associated with per jsf page.so that it will keep state of managed beans which are configured in particular .xhtml file.
so yes jsf is state full only because server side view is maintained which will keep some state information of concerned managed bean.

There have been discussions about making JSF stateless, but they puzzle me. Seems kind of contradictory to the whole concept, although there is a definite use for stateless web functionality.

JSF is a pretty pure implementation of the Model/View/Controller paradigm, and that pretty much contains state as part of its fundamental definition. The Controllers keep the models in Sync with the Views. Which implies that the Models have a non-zero temporal dimension, since they can have "before" and "after" values. Ultimately to me that implies state even if the model has to be torn down and reconstructed between operations.