Well, I have been using RichFaces, although their failure to provide the smooth backwards compatibility and incremental migration that differentiates the
Java world from other language platforms has me considering that I may eventually leave that venue. Before RichFaces, I used the Apache MyFaces components, and in fact, there are still some remnants of MyFaces Tomahawk in one of my older apps.
Aside from custom tag add-ons, I'm also a big fan of PrettyFaces. Although JSF2 added considerable support for things like "bookmarking" JSF URLs, I still feel that PrettyFaces offers a few things that JSF2 doesn't. Especially since my older projects are stuck on RichFaces 3, where not all JSF2 functions behave properly.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.