Global, Setup and Loop can be in any order as Loop
Well, you have to declare global variables before you can access them, so something like
void Setup() { pinMode(myled, OUTPUT); }
void Loop() { digitalWrite(myled, !digitalRead(myled)) }
int myled = 13; // global variable definition.
will fail to compile. If you had global variables that were referenced by some library (a bad idea!), they could theoretically be declared anywhere in your sketch.
I wouldn't say "simplified"
In this particular case, I WOULD say "simplified" because of the automatic prototype generation.
In a normal C program, you would need to define or declare function before they could be used by other functions, and that's not necessary in the Arduino environment.
void Setup() {
int mypin = get_blink_pin();
pinMode(mypin, OUTPUT);
}
void Loop() {}
int get_blink_pin() {
return EEPROM.read(100);
}
would work in "Arduino", but not from a plain C/C++ program.