The actual amount of memory that 32 bit Windows achieves depends on the particular machine.
Yep. It all has to do with address space dedicated to I/O devices, including video cards, and such. An 8 processor (physical processor, not cores) server I worked with at Compaq included 11 PCI hot plug slots along with all the normal built in SCSI, networking and so on. 32 bit Windows was left with under a gig of usable RAM with the stock BIOS settings. This was due to each of the PCI slots holding 300+ MB worth of address space for cards that might be plugged in later. That was pretty much my wake up call that 64 bit was going to be needed much sooner then people thought. Sadly the adoption rate turned out to be pretty slow, due to Microsoft wasting time listening to Intel (Itanium), and then the disaster that was Vista development.