Earlier quoted context omitted.
There’s no way a linker, no matter how smart, can give us back the object size and performance of the ‘90s. For starters, there’s 64-bits. Pointers were a quarter of the size in the ‘90s. Then, there is Unicode. All programs need ICU ( http://userguide.icu-project.org/icudata ). Even if you dynamically link it, many of its symbols (or entry point IDs) end up in your executable. Unicode isn’t an exception, though. Eve…
The article clearly focuses size due to the use of libraries. As for pointer size, personally I agree -- most processes can get by just fine with their own 32bit address space, so I'm not sure why we need to double the working-set size of all pointer-based data-structures.
If your data structures can fit in a 32-bit address space, you can just place them in an arena w/ 32-bit indexes. You do need to use a custom allocator for every element of that data structure, but other than that it ought to be feasible. Link/pointer-based data structures should be used with caution anyway, due to their poor cache performance