Well I know why:
richfaces-impl-3.1.1* was not in the lib dir of ear that is containing my implementation of TreeStateAdisor.
Now I have another problem which I believe is more JBoss AS related:
SEVERE: Error Rendering View[/organizationUnitTree.xhtml]
java.lang.ClassCastException: com.vdel.erm.beans.organization.tree.OrganizationUnitTreeStateAdvisor_$$_javassist_2 cannot be cast to org.richfaces.component.state.TreeStateAdvisor
ehh... 'Why it never gets any easier?!' ;-)
Guess what: all the jar's from WEB-INF/lib should go to ear's lib dir.
BTW. upgraded to richfaces-3.1.2 - still works.
Another solution is to move the TreeStateAdvisor implementations into the web module, which makes sense considering they are only useful to the UI. (Seam will still deploy them as POJO components.)
Okay, still a bit of a Seam n00b, but I'm not sure what "into the web module" means. With the standard Seam shell that gets created, I don't have a directory structure that gets compiled down and put into WEB-INF/classes.
Should I assume this means create a separate project for all my UI components, compile that down into a JAR file and then put that in WEB-INF/lib for the Seam EAR?