about the 3 Gb limit: this is due to how Windows allocates memory address ranges.
A long time ago, there was Windows NT; at that time, processors could only address 4 Gb of RAM, no more. Since device drivers needed to communicate with the system, it was decreed that the upper RAM segment would be used; even without 4 Gb of RAM, if the CPU saw a high CPU range, it'd send the data to the corresponding device.
Then came later versions of Windows NT, named Windows 2000 and Windows XP. In order to keep working with older drivers, it was decreed that these OSes would also make use of the higher memory address ranges. Then, Intel (and AMD) both created physical address extensions (PAE), that allow a 32-bit CPU to address RAM on 36-bit (16 times 4 Gb); but, since Windows users would never see so much RAM on their systems, well, there was no reason to take the trouble - and thus, even on PAE-capable systems, having 4 Gb installed means up to 750 Mb of RAM hidden away for the video card's framebuffer, drive controllers etc.
Microsoft, unwilling to tackle the driver incompatibility problem, decreed that any system with more than 4 Gb of RAM required a 64-bit Windows version - like XP Pro 64, Vista 64, etc.
During that time, in the Linux world... If your CPU could handle PAE, then all your RAM was available to you even in 32-bit mode, provided your kernel was compiled with the required 64G option (it wasn't default at first, because the PAE paging process reduces performance a bit; you had to configure your kernel differently for less than 1 Gb, between 1 and 4 Gb, more than 4 Gb up to 64 Gb).
About 7: one way to improve its performance is to disable as many background services as you can. But then, that's valid for any OS...