Delta_G:
It's just a function that gets called from main. Just because it is named setup doesn't make it magically have some new coding practice rule that doesn't apply to any other function you might call at the beginning of main. I've written tons of code where the first function called from main gets called again somewhere.Or is it just the name "setup" that you think imbues it with this new property of being intended for only one acceptable purpose?
Did you call a function that was in main() or main() itself? There's a difference. A function like ShowMenu() might be called in setup() and be called again many times in loop(). I get that. However, main() is the entry point for most programs operating in a C environment. Once the program has started, however, do you call main() again? In the context of the Arduino IDE environment, the developers of the IDE chose to hide main() and have setup() be the entry point.
You can take main.cpp and do anything you want to with it. You and Ray have been posting code here for at least 5 or 6 years that I've seen and, if you believe what you say and aren't just arguing for the sake of arguing, why have I never seen code from you that calls setup() multiple times in the same program?