Well, it was based on the Intel 8088 having a memory adress bus of only 20 bits. If IBM hadn't tried to cut costs, and instead had used a full 8086, or a Zilog Z800 or Z8000, or Motorola 68000, the memory map could have been a full 16 meg, which would have meant 8-12 meg of theoretical main system RAM.
I once made a biting comment about the IBM choice of the kludged Intel processor to someone who had worked in the industry at the time (not, IIRC, for IBM, though). And he pointed out, a bit heatedly, that Intel had a fully developed 8087 math coprocessor, and that made it the only viable system for a business/science machine. Which was something I hadn't considered.
It was true that Motorola had various coprocessors, but they required glue logic and they hadn't really put together a package in the way Intel did.
Also, IBM didn't WANT the PC to be a powerful machine - that could have threatened their mainframe business. So for them the x86 architecture worked very well.
For programmers and computer users, not so much.
@Kalvan. No, the 8086 had the same address space of the 8088. It wasn't until the 80286 rather later that the address space expanded.
@Weaver. The DOS limitation was in no way shape or form random. The x86 processors had a maximum limit of 1MB address space. Some of that had to be reserved for the BIOS, Graphics, etc. The 640K number is a little random, but 640 or 780 or 512 wouldn't make MUCH difference. the hard limit was 1MB.
Personally, I think the IBM guys should have done a little more work on the mother board and gone with the 68000 series chips. (i.e. done the glue logic work, basically)
@Weaver. Remember that memory was EXPENSIVE back then. The first PCs had 16 or 64K of RAM. 640K seemed (to some, although to to me(!)) to be lots at the time.