>579
ATLインターナルによると、解放処理内でスマートポインタが再度参照されて
二重解放されてしまう事態を防ぐためらしい。
>579 のコードだと次のケースで問題が生ずる。以下引用

 たとえば、スマートポインタがクラスAのメンバ変数で、オブジェクトBの参照を
保持しているとしよう。そして、スマートポインタの.Release メソッドを呼び出す。ス
マートポインタは、オブジェクトBへの参照を解放する。今度は、オブジェクトBが、ス
マートポインタを含んだクラスAのインスタンスを参照する。オブジェクトBは、クラ
スAのインスタンスへの参照を解放することにする。クラスAのインスタンスはデスト
ラクションを決意し、スマートポインタのメンバ変数のデストラクタを呼び出す。デスト
ラクタはインターフェイスポインタがNULLでないことを検出し、インターフェイスを
もう一度解放する。
- ATLインターナル(p.86)