Arkadiusz Drabczyk got it right with "Put $f in double quotes: "$f"" up above.
Using this, I'm able to mv 1M+ files to different directory on the same disk/volume/partition. I edited the question, but I'll put it here too. I'm using MacOS 10.14 and the terminal app, which behaves like BSD for the most part. FOr better or worse, Apple no longer allows 32-bit applications on it's OS, so every CLI tool was compiled in 64-bit. Maybe this is what allows large argument lists?