instead I call them from a main game loop in every frame, resulting in significantly improved performance, beside perfectly managed running order.
I started doing exactly the same thing recently, without even noticing I'm doing it
too bad it took me 15 years to learn it. (By the way, I think it was partly influenced by a Java android game programming tutorial I read recently...)
Anyway, having an option for execution order is still a good thing. You cant put EVERY function in one while loop