And unlike registers and memory addresses, you don't really have to juggle regular variables in your head unless the program has a lot of unnecessary mutability, or really bad variable names.
x64 has 16 general-purpose registers. "Much lower" starts somewhere around a half. I say, touching 32 variables in a given scope is not "half complicated", it's sabotage.