Well, especially when letting other people copy and paste your code, you don't have to worry about duplicating variable names that user might already have. I suppose that it is much cleaner looking to write GetCacheWhatev() than affix that udg_ crap to everything, as well. And if you are actually using the cache quite a bit, it really does simplify lists.
On my reasonably fast machine, the game cache has never caused any amount of latency or lag. I use the cache in a set of parsing functions, which tokenate, colour and store strings (among other operations) pretty much all in the same go. You can expect those functions to call InitGamecache several dozen times per string (of around say forty characters). Using the gamecache might be slower than using variables, I've never tested (and frankly don't know how), but it at least appears to run as fast as variables, ie instantly.
Saving the gamecache and reloading all caches from disk might be two functions that would slow the game down, but I don't see the need to do either any more than once a game.
All of that being said, the real reason the cache is used so frequently is that it is in the heighth of fashion. Whether the situation warrants it or not, you are simply obliged to use it.