I am not an expert at EJBs but I think the basic reason why ejbRemove behaves differently for session beans and entity beans is that session beans and entity beans are fundamentally different. when a client calls remove on a session bean, the session bean can be resued for some other client. it is not a shared entity. however entity beans are shared entities which means remove actually frees it up for access by someother client.
i think since this fundamental difference exists it is reasonable that ejbRemove behaves differently for session and entity beans.