setup(void)? why?

does the program basically start the loop over or can it return to where it was?

It doesn't start the loop over, it continues with the next machine instruction after the one that was interrupted.
Note that this isn't necessarily the next C statement or expression, but could be mid-expression, or even mid-variable access if the variable is longer than a single byte.