I am jumping into this discussion rather late and I am probably not going to
answer any of your questions. I just would like to add that I examined the
session persistence and listeners topic also very deep some weeks ago. After
all I found it not really practical because the servlet 2.3/2.4 spec is not
clear enough about how the sequence the variuos listeners should be called
by the container. In my case it was vital that the contextInitialized()
method must be called before sessionActivated(). This because in
sessionActivated we restore our transient members and for this WE need a
fully initialized ServletContext (and preferably also the init() methods of
preloaded servlets have been called).
Yoav confirmed me that it is a spec problem and encouraged me to contact the
spec group, what I did. They told me that they will address the problem in
a next spec.