static variables

Not quite. If you call another function from within loop(), all of loop()'s variables (both automatic and static) will be preserved through the call.

If you exit loop() either with an explicit return or by "falling off the end", only the static variables will be preserved.