Quote A says the container will clean up when a system exception occurs:
The bean provider can rely on the container to perform the following tasks when catching a non-application exception:
....
This means that unless the bean is a Singleton, the bean provider does not have to perform any cleanup... It is the container
that is responsible for the cleanup.
JSR 318 p.383.
Quote B says the bean provider/application should do the cleanup when a system exception occurs:
PreDestroy lifecycle callback interceptor method not being called:
...
A system exception thrown from the instance's method to the container.
... The application using the session bean should provide some clean up mechanism to periodically cleanup the unreleased
resources.
JSR 318 p.97
So, are quote A and quote B conflicting each other?