The main advantage is that you can keep the size of each instruction small. The more "architectural" registers, the more bits you need to encode each operand in all instructions. The larger the code, the more time is spent fetching the code from RAM and more i-cache is required.
So how does having a larger "microarchitectural" register file help?
Regiater renaming is used to eliminate false data dependencies arising from the reuse of registers by successive instructions that do not have any real data dependencies between them.
This allows independent instructions to be executed in parallel even if seems that you'd have to wait until a regiater is freed up.