As we keep seeing – Azure tag names are not case-sensitive, until they are.
Per the documentation https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources
Tag names are case-insensitive for operations. A tag with a tag name, regardless of the casing, is updated or retrieved. However, the resource provider might keep the casing you provide for the tag name. You’ll see that casing in cost reports.
Tag values are case-sensitive.
Per the now four year old bug, Azure Resource Manager itself should respect this (i.e. case insensitive and case preserving) https://github.com/Azure/azure-powershell/issues/9271
Then we get issues with:
CostCenter, Costcenter, costcenter – all being different depending on the tooling in use.