Thats bullsh!t. Its no bug in Windows. 32-bit software/OS can address only 2^32 = 4GB address space. Since even the I/O devices are memory mapped, about 0.5GB of address space is reserved for them. This is the reason why 32-bit OS can see only 4GB - 0.5GB (reserved) ~ 3.5GB RAM. Hafing a graphics card has got nothing to do with the 'ram recognized'.
Tho there are ways to force the OS to see the whole of 4GB (using PAE).
The thing is buggy because PAE never works as good in windows as other OSes. Thats all I said.
Its rumored to be intentional because that way more people will shift to 64bit which will be a GOOD thing, since even PAE has a limit of 16GB which can be surpassed pretty soon, considering Nehalem owners already have 12GB RAM and once 4GB sticks become mainstream, they will go for 3x2x4 = 24GB triple channel DDR3 RAM and then complain once again that windows has too little RAM addressing capacity. Anyway, I'm not complaining. I actually WANT MS to give prominance to 64bit by making Windows 7 Ultimate 64bit exclusive.
Anyway, the 4GB memory includes:
1. I/O Devices
2. RAM
3. Graphics RAM
4. Onboard RAM in motherboard
5. Something else if I forgot to mention it.
So totally out of 4GB you need to subtract GBs for everything and if you still see a good difference, its an issue with the RAM or the moterboard.