Simplesmente, nem todos os aplicativos são compilados binários de 32 ou 64 bits.
- A maioria dos scripts de bibliotecas Python é "compilada" em tempo de execução pelo binário nativo do Python (que será executado no modo de 32 ou 64 bits, dependendo do sistema). O mesmo com o Java.
- Alguns pacotes são apenas recursos para outro pacote e podem ser compartilhados entre pacotes de 32 e 64 bits (por exemplo, pacotes de origem do Kernel).
Os pacotes que são separados em arquitetura são compilados para código de máquina, dependem muito de dependências relacionadas à arquitetura ou têm código interno dependente de arquitetura (parece improvável).
Pacotes e binários "Fat" são algo com que já foi brincado no passado, mas você está realmente falando sobre dobrar o tamanho da maioria dos binários e bibliotecas, bem como introduzir bugs imprevistos. Simplesmente não é uma vantagem que vale o custo.
Também vale a pena considerar que na maioria dos casos os desenvolvedores não precisam fazer nada para obter pacotes específicos da arquitetura. Eles vão empurrá-los para uma plataforma de construção como o Launchpad e o Launchpad retornará um monte de pacotes de 32 bits, 64 bits e variantes de ARM.