Is this pretty typical to declare all variables in loop as static if you don't want to reinitialize them every time?
Either declare them as static or declare them globally.
Your examples are functionally correct.
You might be interested in this thread:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1283329855
Turns out, void loop() is actually inside of an infinite for-loop.