えー、そもそもまともに動くはずはないシロモノなんですが、
なぜこういうことが起きるのか教えてください。

A=X+1          (←XとYは未定義)
B=Y+1
Z=1           (暗黙の型宣言)
C=A+B

というような場面でZ=1を入れるかどうかでCの値が変わるんですが。
XとYが未定義なのでどこかめちゃめちゃなアドレスを参照していて、
Zの宣言によって参照するアドレスが変わるとかそんな感じでしょうか?
でも未定義とはいえ既に代入してあるんで結果が変わるのは不思議な気がします…