会社で聞いてみたところ、「最初にVBAから呼び出したときに、CPUの2次キャッシュにゴミが残ってしまい
2回目以降の呼び出しのときに代入された値が変わってくるのでは」と言われました。
VC++側のコーディングでは回避不可能かも、とのことです…

ちなみにP4 2.4Gです。