Interesting - goes to show you should never rely on intuition, always on benchmarks, I guess. You will find a difference, memory wise, if you store the list in an array. (For me, 2MB vs 2.4MB with ()x1_000_000 - not a gigantic difference, but certainly noteworthy.)
Makeshifts last the longest.
Comment on Re^5: Problem emulating built-ins like map and grep.