I've been experimenting with the use of the unpublished object versioning functionality, which is what I believe is used for versioning schemas. I'd like to see this published & formally supported going forward.
This capability is something that was mentioned during a prior TOI, as something that may help with source control, and is something I'm looking at using for part of my source control project.
If we had the option of using it, I believe this capability could prove useful in other contexts for applications we develop. This is relevant to scenarios where we need to update complex setup data (i.e. product settings, letter templates). Currently, we need to be careful to commit all changes to data of this nature to provide a consistent view before it takes effect, whereas versioning could allow us to make/load changes in multiple transactions, with a transition phase at the end. In some scenarios, users want the ability to review/approve changes made by others before they're put into effect, for which it may be simpler if we could version the objects as part of this process. It may also be preferable for a prior version to be kept in use for older data, with new versions being used for new records going forward (assuming object versioning could support many versions, rather than just current/latest).