Serial.parseInt() behavior changes with uninvolved loop

I've been trying to learn more about the underlying hardware in AVRs since I first found things I could do more easily in C than the Arduino language, but I still tend to overlook the basics.

The most basic thing you're overlooking there is that the "Arduino language" is C/C++.