On start of layout will happen every time the layout is started. Whether it is in the same execution, or not.
Nevertheless, when you are executing your game on a device for the very first time, there is NO local storage key existing on the device for the game.
So you know you want to display the tutorial.
Also, your code is supposed to be made so that when a key doesn't exist, it creates one.
Once the game has been executed once, the key has been created, the next time the layout is started (whether in the same execution, or later), "On start of layout" checks if the local storage key exists. This time it does.
So you go to a different event, in which you remove your tutorial elements.
It's the logic of how local storage works.
No magic this way, and you are using the local storage how it is supposed to be used.