@meejah You're exactly right. The question is actually still have is around exactly what about the commit is signed. This is an implementation detail, and not really well-documented in the user docs. I'm sure it can verify the treeish, but whether it actually signs every piece of metadata associated with the commit is something I wasn't able to grok from the source, especially since you couldn't modify Git history if you can't change the pointer to the parent treeish in the DAG.
My current understanding is that you can still move commits, but you may either lose the signature because it's stripped when moved or you just get an invalid one signature if you try to verify the moved treeish. Either way, it solves nothing to do with xz-utils, but I'm still interested in the technical specifics of what's happening under the hood.