Multi-Architectures and Their Binaries
Solution 1:
The idea is that you might want to install both 32-bit and 64-bit versions of the same library on your system, to accomodate binaries using either architecture, wherewas there is little point in having the same binary in two different architectures.
Some applications are very pointer-intensive, in which case running a 32-bit version for a small dataset could be more efficient as you'll save memory and reduce cache misses. That will only work up to 3GB of address space for i386 (or 2GB, depending on kernel compile time options).
If you run into a situation where a 32-bit binary makes more sense, you can recompile said binary yourself. However this is too much of a corner case for distributions to handle. If you feel this decision is wrong, you can always create a feature request.
Another sapproach is to install a 32-bit version of the whole distribution, and run it with a 64-bit kernel. This will work fine, each process will have access to 4GB of memory (instead of 3GB or less as mentioned earlier), the system can use more than 4GB of RAM, and the kernel doesn't need any of the tricks that 32-bit kernels use (eg PAE).