Having redundancy and backups in case something goes down is a good approach to programming and many other walks of life. There is always a trade off between efficiency and sufficient redundancy.

It may be more efficient in the short term to make full use of all resources. However, in the long run, there is usually a good payoff for having redundant resources you can fall back on.