For the longest time, I wasn’t entirely sure why the XDG base directory specification split non-cache data into config and data. I knew there must be a difference which made it a useful thing to do, but I just couldn’t figure out why.
Then, as it tends to happen, while on a completely different topic, I ran across an entry in the Aquaria development mailing list which explained it simply and clearly.
Config files and data files are separated because config files are, in some ways, like cache files. If you lose them, it’ll be annoying, but they’re not too difficult to replace. On the other hand, I know I’d be pissed as hell if I lost a saved game that took me hours or days to build up.
It’s not as clear a distinction as something like “roaming vs. non-roaming” but given that config files are also more likely to be system-specific, that can play a part in it too.
Update: In my opinion, this blog post explains it even more effectively.