Static VI Reference

Perhaps I’m missing something obvious - but why is a Static VI reference used for Autonomous in the default robot framework, rather than putting the VI in the loop just like teleop?

Is the reason to allow it to be called once and not loop continuously?

It’s so the program can explicitly keep track of and abort Auto at the end of the 15 sec period.
Auto is a special case just for that reason.

Auto is also designed as a one-call vi, while Teleop is designed to be called 50 times per second.
An earlier season of the LabVIEW default framework offered an option of either method (one-shot or iterative).
You can of course write your own iterative within the one-shot, but it’s not particularly meaningful to iterate an Auto based on incoming packets of user controls that are unchanging.