Well it's really funny. It actually worked like what you have said. I was expecting java.rmi.NoSuchObjectException.
I also tried removing EJBObject using EJBObject.remove() method, but there's no change in result. The business method runs fine.
I referred to
Object Interaction diagram under
Section 7.9.3 Client-invoked remove() of EJB specification, but there's no clarity imposed by Specification whether the EJBObject is killed by Container or not. In case of Stateful Session Bean, Container kills bean and EJB Object as per diagram on page 209 of HF EJB.
I think as below:
In case of Stateless Session Bean EJB Container Provider has freedom to provide implementation on what to do with EJBObject after receiving remove call from EJBObject Stub.
As we all are aware, Container provider is not required to kill bean instance, as it returns to pool after completion of business method. So Container Provider is least bothered about providing any handling when remove call is received from stub of Stateless Session Bean. Possibly Container provider has forgot that he/she is required to kill EJB Object reference. This could simple be a BUG or there could be totally different story to it.
Please refer to page 98 of HF EJB. It states as:
Each client gets his own EJBObject reference and his own bean. The client never shares a bean with another client, although the meaning of "shares" depends on whether the bean is stateful or stateless.
So I am arriving at a conclusion as:
Clients share EJBObject in case of Stateless Session Bean. Please correct me if I am wrong.