I'm not sure why you think using ProgramData to store system-wide shared state for an app is abusing it, that's what it is there for. And since it's not flagged as a "trusted location" you aren't circumventing UAC either.
AndyC: I read documents from Microsoft that suggested for MMOs and other games that require constant patching that they just put all their files in ProgramData so they don't require UAC elevation to self-patch. This includes the executable program code,
not just game assets.
Except if that's the case, why not just install all programs to ProgramData to avoid all UAC prompts?
But if you do that, you lose the benefit of protection from malware-modified program files.