説明用のサンプルコードに突っ込みいれるのもなんだけど>>200を見る限りでは設計見直せと言いたくなるな。

・HogeContainerはshared_ptrを介してHogeを所有してるがそれは他の何かにもHogeの所有(共有)を許すということだ。
とすると複数のHogeContainerが単一のHogeを所有することもありえるがHogeのOwnerには一つしかなれない。

・そもそもHogeからHogeを所有してるHogeContainerが直接わかる事に意味はあるのか?
HogeContainerからHogeを解放したいとかの用途ならHogeに専用の関数を個別に用意すべきではないか?