No I'm afraid it is true that that the 32bit "consumer" versions can't use 4GB of RAM in practice. It is no weird glitch that the OP gets displayed 2.94GB of useable RAM. The reason for this is the PC architecture, communication with devices works through memory mapped I/O, that means part of the 4GB physical address space cannot be used for main memory because it is used to communicate with devices like the graphics card. Depending on configuration, more than 1GB become unavailable because of this.
This "masked" memory can only be used with memory remapping and, for a 32bit OS, PAE to extend the physical address space. And the latter is the problem, while all windows kernels since XP support PAE, only the server variants actually support accessing memory above the 4GB limit (so basically an artificial limitation).
More details:
https://en.wikipedia.org/wiki/3_GB_barrier
https://en.wikipedia.org/wiki/Memory-mapped_I/O
This is all about physical addressing, the /3GB switch is a matter of virtual addressing. Virtual addressing is completely independent of the amount of RAM, and its limits are a matter of how it's implemented, but in a pure 32bit environment it is still impossible to give a process a flat 4GB virtual memory if it is supposed to run efficiently.