This paper from HP helps explain it–the platform can theoretically support the full 4GB, but your hardware is going to allocate some of the address space (not the physical RAM) to the PCI bus, the video adapter memory address space, and other resources. 32-bit OSs need to use part of the full 4GB address space to address these resources, subtracting from the maximum memory you have available to the OS and applications:
The PCI memory addresses starting down from 4 GB are used for things like the BIOS, IO cards, networking, PCI hubs, bus bridges, PCI-Express, and video/graphics cards. The BIOS takes up about 512 KB starting from the very top address. Then each of the other items mentioned are allocated address ranges below the BIOS range. The largest block of addresses is allocated for todayâ€™s high performance graphics cards which need addresses for at least the amount of memory on the graphics card. The net result is that a high performance x86-based computer may allocate 512 MB to more than 1 GB for the PCI memory address range before any RAM (physical user memory) addresses are allocated.
So, if your video adapter has 512MB of RAM (like mine does), your maximum memory is going to at most be 3.5GB, because Vista has to use 512MB of that address space to address your video memory. It’ll actually be lower than the 3.5GB because there are other hardware resources that need address space, too. So, it never hurts to fill your computer with 4GB of RAM–you’ll definitely get the max, but you won’t be able to address it all. You probably won’t be able to address much more than 3GB, and you might not be able to address more than 2GB.
The paper also mentions something interesting about 64-bit computers. Basically, depending on the hardware, you might be limited to 4GB of RAM even if you install 64-bit Windows Vista:
Windows XP Professional x64 Edition uses 64-bit addressing enabling virtually the entire amount of installed RAM to be made available on computers that have large address infrastructures (where the entire system has more than 4 GB addressing capabilities via the processor, chipset, physical memory capacity, etc). The HP xw4300, xw6200, xw8200 and xw9300 Workstations have the required infrastructures and even the PCI memory address range is recovered by re-mapping it above the top of physical memory.