The web application we're currently building is using JSF. I confess that nothing I've heard about JSF appealed to me, but with an open mind I've been getting my hands dirty with the actual coding. Most of my prejudices were indeed confirmed. However, relying on pre-built components is very nice, specifically we're using JBoss's richfaces. The last web application I worked on was very UI-centric, and much of its development involved integrating and customizing the Dojo widget library -- very tedious work. That I'm no longer required to do so is a benefit of JSF I'm enjoying.
This recent post on "The server side" sums up nicely my impressions of JSF (I especially like the term "Old School HTTP wranglers"). I'd add to it by saying that traditional page design workflow isn't as straight-forward with JSF. With action-based web frameworks, it was rather easy for a HTML designer with some technical acumen to directly edit JSPs to implement a look and feel. Not so with JSF -- you're farther away from the final HTML. Its the components you include on the page that generate DIV tags and so forth. Having accrued 10+ years experience working with HTML, I find this the most frustrating aspect of JSF. We've been given a series of HTML Mockups from a design firm, and integrating has proved to be very challenging. I wonder if JSF merely shifts work efforts from HTML editing to Component customization.
I'm still not sold on JSF, but may be singing a different tune once we start implementing fancy AJAX and UI controls.