This is because when you call remove method on Entity Bean it is not ACTUALLY removing the bean instance, it is removing bean representation of entity data. The bean instance still will be in pooled state. When container removing the bean instance the unsetEntityContext() is called to free any resources that are held by the instance.
Just for clarification... for session and message driven beans resources are released in ejbRemove() But for entity beans, ejbRemove is used to actually remove the entity in the persistant store and unsetEntityCtx is used to release resources- when the bean is removed from the pool. Did I get it right? Please explain if not so... thx