Shale provides a ViewController interface and abstract implementation with helpful methods. In a way, it provides the last bits necessary to treat backing beans as one treats ASP.NET codebehinds. David had a slide showing the JSF lifecycle, which I recall seeing last year and thinking “wow, that’s nice but far too complex to ask a novice developer to grok.” This year, he updated that slide with annotations of the “events” ViewController attaches, which provoked “aha! Those are the simple steps everyone cares to know about.”
Second, it defines an interface for DialogControllers, which would sit in session state and track “user conversations” such as multi-request forms. This simplifies the reuse of a single ViewController for multiple requests and views, as Ryan? has become fond of doing in ASP.NET.
I expect that a few simple Shale example applications may prove to be the tipping point for JSF adoption (for better or worse.)