GlassFishのJNDIで取得したHibernate実装のEntityManagerがcloseされない

Webプロジェクト上でサーバ管理EntityManagerをJNDI定義して取得する関係のネタは何回かこの日記で書いたのですが、APサーバがGlassFishで実装がHibernateの場合、PersistenceContextType.TRANSACTIONのEntityManagerがトランザクション終了後もcloseされてないみたいです。SessionBean上でDIされた場合は問題なくcloseされていたのですが、Webアプリの場合、色々なパターンで試したのですがどうしてもcloseできませんでした。HibernateにはSessionをトランザクション終了時にcloseできる独自設定があるので最悪それを使えばいいのですが・・・やっぱり何か気持ち悪いというか
ちなみにTopLink EssentialsやEclipseLinkの場合は、JNDIでもEJB上でも関係なく、最初に呼ばれる実装だけはcloseされず、それ以降に呼ばれる実装は全てcloseされていました。この動きは何だろう?・・・最初のPersistenceContextを二次キャッシュとかで使ってたりとか?・・・
ちなみに、JNDIで取得したりDIされる直接のEntityManagerはGlassFishが提供するProxyオブジェクトなので、利用したEntityManagerがcloseされたかどうかを確認するには、トランザクション上でgetDelegateを呼び出してEntityManager型にキャストし、トランザクション終了後にisOpenメソッドでチェックしています。