Most shading and rendering artists create numerous versions of a material. Very often, we need to store a material in the scene so it's not lost, either to have a backup version or to have different material versions because different versions need to be rendered out.
Currently, keeping different material versions in the scene is cumbersome and forces us to come up with creative workarounds - carry hidden object with the scene that carry these materials, or create Multi/Sub-Object materials with different material versions nested in it and making sure it's kept in the material editor or assigned to a hidden object etc.
In short, there's no easy dedicated way to store multiple material versions in a scene.
This is easy to solve and can be probably done with very little effort while supporting all renderers. The idea is to have a new material type - let's call it the Depot Material - which can hold materials in a list like, for example, the Multi/Sub-Object Material. The material used for rendering would be simply activated with a simple radio button.
Depot Material UI mockup: