Well, the first thing that makes me think that way, is that "64bit linux + fglrx + 2GB ram" works Ok, but when > 3GB ram is installed, X doesn't start. The thing is SB600 reports 64bit DMA support, when in reality it is not so. It was the same problem that was corrected in the kernel ahci driver, so they forced 32bit DMA operation for SB600.
-In case of 32bit DMA the memory-mapped IO is placed in the upper part of the memory adresses, hence when 4GB is installed you get 3.2GB, the rest being reserved for IO adresses.
-In case of 64bit DMA the MMIO is placed somewhere higher (possibly in upper part of 64bit adresses, 32GB or 64GB), which makes adressing full 4GB and more possible, because there is much higher number of adresses.
I'm not specialist in the internal operation of fglrx, but i beleive it is possible that in 64bit linux it asumes that it deals with IO which addresses are placed higher and 64bit DMA that handles that (since almost every other SB on Intel or AMD 64bit platform except SB600 supports 64bit DMA, it is very unusual in a 64bit system to have 32bit DMA), but beyond the reach of the 32bit limitation of SB600.
If you do not beleive this is the problem, I'm sure it is possible for the makers of fglrx to test with SB600 any 64bit linux with fglrx, and try once with 2GB and once with 4GB or more installed (if it works with 4GB or more ram installed, I would be much surprised), in order to get to the bottom of the problem.
As a side-note: I have a friend (has SB600) who recently bought 6GB of ram and tried 64bit Windows Vista, and AHCI driver for Windows Vista made by AMD itself doesn't solve the problem (thankfully the guys making the anci linux kernel driver saw the problem and solved it), so he cannot get the OS to work with anything more then 3GB ram.