Is it not that case that setup() is called once and loop() is called repeatedly?
i.e. that there is an unseen main() which might look like this:
void main(){
setup();
while(True){
loop();
};
}
Apologies as I'm just looking into the Arduino and have almost no C/C++ experience; I'm trying to get a handle on this loop() situation myself.