Hi Harvey,
Similar reasonings as yours above (great BTW !

) were the ones which confused me the most while learning
EJB !
Why is it so ? And why not this way (would be smarter BTW and easier to remember...) ?, stuff like that.
EJB specs are *just*

a bunch of *contracts*, which is useful too !
You probably will be a Bean Provider and/or an Application Assembler. Now just put on your head the Container's Developer's hat : he reads the specs as you do, but with the other party's viewpoint : he says "OK, in sessionContext() I don't need to make the EJBObject accessible, but well in ejbCreate(), (...)" etc. That kind of developer is not that much different that *you* are : he just follows his/yours specs. Why ? Because it's written in the specs.

It could be different, but it's not.
I personally *hate* learning stuff where I cannot reply to all "Why ?" questions, but with EJB (as with *any* high level technology BTW), I think you have no other choice. Published final specifications are the result of negociations (and I guess they may be tough

) between multiple vendors *and* users. How the heck could they be "perfect" then ?
Regards,
Phil.