We are looking a system UUID as a license locking criteria, and from what I can see it should work. But I can't find a definitive answer on whether the UUID survives changing availability zones/regions, changing vm size, restoring from backup etc.
Are there any corner cases where the UUID will change?
There is one situation in which it will change:
Azure Unique VM ID won’t change upon reboot, shutdown (either planned for unplanned), start/stop de-allocate, service healing or restore in place. However, if the VM is a snapshot and copied to create a new instance, Azure VM ID will get changed.
See: https://azure.microsoft.com/nb-no/blog/accessing-and-using-azure-vm-unique-id/