Esto también puede darse porque Delphi al compilar "optimice" el código. A mi me ha suceido en
Delphi 6.
En Delphi 6, dentro de Project --> Options -> Compiler -> Code Generation puedes poner un check en code generation -> "Optimization" y otros checks en el apartado Debugging.
En modo Debug quito Optimization y marco los checks de Debugging.
En modo Release hago lo contrario.
Por ejemplo:
Código Delphi
[-]
a := 1;
Entrar := True;
if (Entrar = True) then
begin
a = 1; end
else
begin
a := 2;
end;