Last but not least ~ Windows will always use the paging file unless you completely disabled it (which you should never do because it is also used for memory dumps on crash). The problem here is ~there is no calculation or guideline what to set it to. The only safe way to use it would be with the USERVA switch by setting a value between 2048-3072 (2GB - 3B). If you ever come in the position where the kernel needs more you will see your system getting unstable ~ probably even BSoD. The problem here is that it will limit the kernel memory to only 1GB. The only way Windows will address more then 2GB to user application is by using the 4GT switch. Please stay away from any of the switches! They can do more harm then help. PAE is automatically enabled for 32bit Windows XP, Vista and 7 if it's supported! Hardware memory always takes priority over system memory and therefor there is not enough addresses left for the full 4GB of RAM.
As already mentioned the 'missing' memory is duo to the limited address space (2^32).