Why does execution continue even without a flow pin being connected?

So I’m having a go at generating some grids. I’ve set up a pretty dirty series of for loops to get my grid. Works fine, except the loop jumps around within itself without just exiting out for reasons I don’t understand.

I know the image is poor but just as an overview, the node marked with a breakpoint keeps jumping back to the commented while loop. Shouldn’t execution just stop since the print node has no further pin?

LogBlueprintUserMessages: [Box_Spawner_2] Y: 2
LogBlueprintUserMessages: [Box_Spawner_2] Start loop Y
LogBlueprintUserMessages: [Box_Spawner_2] Start loop Z
LogBlueprintUserMessages: [Box_Spawner_2] Made box at: X=50.000 Y=50.000 Z=0.000
LogBlueprintUserMessages: [Box_Spawner_2] Start loop Z
LogBlueprintUserMessages: [Box_Spawner_2] Made box at: X=50.000 Y=50.000 Z=25.000
LogBlueprintUserMessages: [Box_Spawner_2] Start loop Z
LogBlueprintUserMessages: [Box_Spawner_2] Made box at: X=50.000 Y=50.000 Z=50.000
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 3
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 4
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 5
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 6
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 7
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 8
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 9
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 10
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 11
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] Y: 3 and X: 12
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27
LogBlueprintUserMessages: [Box_Spawner_2] total number of boxes is 27

This is an example of the jumping. My expectation is that the first time “total number of boxes is 27” is printed, the blueprint should stop functioning.

Okay the answer is simple. When you have any kind of loop you don’t need to pin execution back to the outer loop, it will return there automatically.

What I did by pinning recursively was causing the completed part of the loop to continue to execute. I think the way it compiles I was actually putting each part of each outer loop in every inner loop by doing this.