Just beginning to wrap my arms around
EJB, but, for the purposes of stretching my brain and contrasting my answer with other folks, thoughts include:
* Home vs. Object interfaces give the container more flexibility in how it implements getting remote clients to instances of business logic/data. More flexibility lets containers optimize in various ways, re: caching, loading, etc.
* Once the remote client has a handle to the EJBObject stub, it may no longer need the EJBHome interface object, and so can let that object go to be garbage-collected.
* Just general, good, class/interface design where the interface doesn't attempt to accomplish two fundamentally separate kinds of things (lifecycle management vs. business methods).