it's an architecture thing, built right into the processor. the 1.6ghz G5s can address 4 gigs of RAM, and the dual 1.8s can address 8. the older machines simply weren't built to talk to more than 2Gbs, and nothing short of replacing their processors will allow them to do so.
it comes down to simple binary. think of your RAM as a big bank of pigeonholes, each storing one bit of memory. in real simple terms, let's say you have a 2-bit memory. that's two pigeonholes, named 0 and 1. your computer can say things like "give me what's at memory address 0" and "write this to address 1." not a very powerful computer, huh?
but if you have 4 pigeonholes, you now need to use 2-bit addresses to get to them all: 00, 01, 10, and 11. but what if your computer was built to only use 1-bit addresses? well, you'll never be able to talk to more than 2 pigeonholes, no matter how many you have.
now multiply that scenario by a few billion, and that's why your G4 can't use more than 2Gb of RAM. it just wasn't built to send addresses of more than a certain length. that's a hardware thing, having to do with the way the processor is connected to the RAM. the G5s have a "wider" connection to the RAM that allows them to send longer addresses and thus access more memory.
if anyone is interested in this kind of thing (explanations of computer architecture that even non-technical guys like me can understand) i highly recommend Code: The Hidden Language of Computer Hardware and Software, by Charles Petzold. it's fantastic book that walks you through all of this and much more.