I've been dismayed every time I've looked at JSF. You have to poor on loads of code to get anything done, there's that single event listener method for the entire app (I hope they've done something about that subsequently), and you are basically screwed without tools support.
I built Tapestry to address the same problems and its easier and better than JSF right down the line; less coding, better seperation, more flexibility ... and something even more key: years of exposure.
Because Tapestry didn't come out of Sun and a JSR, there was never the need to promote the myth that it was the perfect solution out of the box. Instead, I've had three years to build a community, listen to my end users, and improve the framework iteratively and flexibly. Many of my initial concepts have proven wrong in the field and I've adapted the framework to meet the real world.
The basic proposition of JSF ... that developing a web application requires specialized IDEs and tools is refuted by Tapestry which works better than JSF without specialized tools. A standard WYSIWYG HTML editor is the most that you need. Spindle (the Eclipse plugin) improves productivity but is not a requirement to make use of Tapestry.
I'm definately in the camp now that says the JSR concept is fundamentally flawed; you don't innovate by committee. JSF is a big ugly kludge as Sun defends its prior mistakes (JavaServer Pages, JSP tags) without acknowledging their limitations and oversights.