Love it when people disagree
Anyway you sir, are incorrect
The 32 bit system is able to determine and address up to 4GB of system memory per application. Windows counts as an application and therefore can address up to 4GB system memory to itself and programs which are run within the interface.
Windows XP x86-64 is able to use up to 8GB of system memory per application.
2^32 = 4294967296 bytes, therefore 4096MB > 4GB
The system can address much more memory than this, up to about 64GB, however it can only assign up to 4GB per application as it is limited to 32 bit physical addresses. The addressing length would have to be greater then 32 bit to allow 4GB+ memory to be accessed per application. Currently 36 bit virtual addresses are used which allow greater amount of virtual memory to be accessed and assigned
Have a nice day
Oh and the BIOS will see as much memory as there is installed, however if it is greater than the CPU and operating system is able to work with it can not be used.