As you can read in the
EJB 2.1 spec about the session objects lifecycles (Chapter 6.7): a remove method will take the session from "exists and referenced" state and move it to "does not exist and referenced" state (so preparing it to return to the pool).
Another interesting part of ejbRemove() is that it is responsible with the deallocation of all resources allocated during the ejbCreate() invocation.