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.