It would be good to have as much as we got RAM, because RAM is slow and registers are blazingly fast.
Registers are expensive and RAM is cheap (per bit), so we got what we got -- some registers and cache to fight RAM latency.
Some people may say, that it won't be good if all RAM was replaced by register memory, because to address these registers we would need bigger instructions, so code would get bigger (larger instructions to contain register indexes), but I disagree, we can use other methods to access them, like we do with near/far memory.
Processor that has that much registers and is as fast as current desktop/server processor would cost so much money, that it won't be available for regular customer who want's just a fast PC, therefore regular consumers have processors with reasonably low number of register and use memory hierarchy with caches to speed up computations, because otherwise it's too costly.
It really matters in hardware implementation for speed, but you can get away without a single one, especially if you are making emulator of an inexistent processor, you probably shouldn't care much about it, speed won't differ much, but you can get some theoretical lessons from making processor with a lot of registers, but no stack capabilities, or with single register or even none, each one of them would require some interesting ways to implement their computation model, often very different from what we have in x86-like architectures.
So, processor needs much more memory as it's registers if we want it to be fast, probably addressable in different way, only of the same type as c. But average customer can pay only for as much, as we currently get, and as technology advances, we will get more of them, or get bigger registers for vectorization, which seems to be the way for improving performance now and in near future, also when you get CPU with more cores you get more registers -- every core has it's own set of registers, not much sense to share them between cores -- performance would drop.
I'd also recommend reading this answer: Assembly: Why are we bothering with registers?