The SSA form/optimizations can change things, so maybe. Initializing with a constant (integer, null pointer, ...) can move the initialization closer to the point where it's first needed.
Does it work without optimizations turned on?
I will look at it, but right now it's not obvious to me where the problem is (and where I should start looking)...