1. It is unnecessary for a Session Bean because any clean up code can be placed in the ejbRemove and ejbPassivate methods. ejbRemove is invoked before the end of a Session Bean's lifecycle.
2. A Session Bean doesn't have an EntityContext to unset...

.
The reason an EntityBean needs the unsetEntityContext is that ejbRemove may or may not be called before an instance is removed, however unsetEntityContext is always called.