DLLで確保されたメモリはそのDLLで解放しないといけないと聞きました。

そこでお聞きしたいのですが、例えば以下のような場合
 ・アプリケーションAがDLL_BとDLL_Cを参照
 ・DLL_B自身もDLL_Cを参照
DLL_BがDLL_Cで確保したメモリを
アプリケーションAからリンクされたDLL_Cで解放するのは大丈夫なのでしょうか?
よろしくお願いします。