I think it’s obvious why your changed graph “works”. You don’t get the rotation from the instance, but from the NewTransform variable. The rotation is only set to 0/0/0 the first time the function is called (since only the first time GrowState is 0).
But the first time the function is called, the rotation is get from NewTransform, and directly again set to NewTransform. Then the instance transform is updated (and rotation get’s set to 0). But since the scale is 0, you are not able to see the changed rotation in the game (since you don’t see the plants at all).
The second time the function is called, the old rotation is still get from the NewTransform node (which has NOT been set to 0). Then the instance transform is updated, and since GrowState is not 0, scale also is not 0 and so the rotation get’s set as it should.
In my original GrowPlants function I have directly set the LTransform variable from the “Get instance transform”, so since the rotation was once set to 0 there, it always was 0 afterwards.
By the way, I can easily reproduce this in a new project. I was not able to do it before because there I have not set the scale to 0/0/0. If I create an actor with an instanced static mesh component and update the transform, I get the same bug as in my real project.
http://puu.sh/eWqc7/476813d389.png
Output is 0/55/0 and then 0/0/0.