もう1つ質問があります

void ProcessHoge(const shared_ptr<const Hoge> & spHoge)
{
 // shared_ptr<const Piyo> spPiyo(spHoge->GetPiyo());
 // const Piyo * pPiyo(spPiyo.get());
 const Piyo * pPiyo(spHoge->GetPiyo().get());
 GlobalFunc();
 spHoge->ConstFunc();
 pPiyo->ConstFunc();
}

シングルスレッドにおいて、このようにspPiyoを作成せずに直接生ポを取得して使用することは問題になりますか?