Ok, I understand that. Thank you for the explanation.
An analogous thing happens in D:
int x;
x = 5;
The compiler front end generates two assignments. But then, when it goes through the backend, the first assignment is deleted by what is known as the "dead assignment optimization".