- The total address space is 1MB, and that's a CPU architectural limit (which is only "broken" many years later, and in a rather unsatisfying way).
- You need somewhere to map the RAM, and because of CP/M quasi-compatibility, that needs to start at address 0.
- The CPU starts executing code at 1MB minus a few bytes, so your system ROM must go right at the top of address space.
- You need memory windows for the system ROM, options ROMs and 2x framebuffers.
- Bank switching adds extra complexity and 74xx logic chips on a motherboard which is already very busy.
Given these constraints, the 640K limit for RAM, with framebuffers and ROMs mapped at 0xA0000, is the only thing that makes sense.