32 bit CPUs (which are at current most available models) can count to about 2 billion. As the CPU uses a single number as an address to tell the memory controller chip where in RAM it wants to read or write something and the CPU doesn't know about numbers larger than about 2 billion it can work with only 2 billion bytes of RAM (which is 2GB).
If you have a computer that uses a 64 bit CPU it can count higher and thus address more RAM (you can for example easily fit 8GB in the top model Apple G5).
In the past other memory addressing schemes were used that used pages of memory to get past this problem but those have been largely abandoned because they were slow (a single memory operation would require double the CPU time roughly from using a linear model).
RAM are fast, but cache are faster! Following your line of thoughts, it would definitely be better if we could have more cache then...
However, there're size limitations that we can go. There's just this much size on the motherboard that we can put things onto. Of course there'e also the cost factor.
One may argue that the cost of RAM had drop significantly & you're willing to have large motherboards to have more cache and/or RAM, but in the business sense, there must be a substainable market demand before this could ever happen.
Also, having more RAM and/or cache, we won't know if the heat generated can be handled or not...