I *think* this should use 3GB on Linux. After all RtlAllocateHeap calls VirtualAlloc which uses raw memory allocation without any 2GB restrictions to be seen anywhere. ICBVW, though.
I think that if Windows allocates 2GB only to user space, then that's it. If Linux allocs 3GB for that, then that's it, too. Wine only plays a minor role in that, AFAICS.
This 3GB thing causes Borland C Builder 4's linker to lock up, it gets confused with virtual sizes > 2GB. I've had to hack my local copy of wine to get it to work. Perhaps it might be a good idea to have an option to restrict the size of what VirtualAlloc can return?