There is only 4 gigs of memory space in the OS, and some peripherals take up part of the memory space for hardware communication - in particular, a 512 MB card takes up 512 megs of the OS logical memory space, dropping the max to around 3.5 gigs. Add a few other things, and you'll be stuck just above 3.
This doesn't stop certain companies to sell computers with more RAM than they can use: Dell is fine selling you a machine with 2 768 MB 8800 GTX cards and 4 gigs of RAM, knowing full well that you won't be able to use half of it.
Using 64-bit Windows doesn't really solve all that much, however: Some things - again, notably the graphics cards - will show up below the 4 gig boundary no matter what you do. To use all the RAM, some needs to be "hoisted" over the limit (so it uses the spaces 0-3 gigs and 4-5 gigs). This requires BIOS support, and I'd be very surprised if Apple has implemented something like that.