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.
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
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.