Yes, this is the main reason, as mentioned there are situations when
you want to store temporary data but don't care about persistence
between reboots - you just want to keep it from moment to moment. Many
skill systems or combat systems are like this - they need plenty of
stuff remembered while they are used, but the data being shifted
around, while necessary at the moment, is not important in itself -
it's just an uncesseray overhead to store it only to re-read it to/
from disk every moment.
The cache is also a way to store things without actually tying it to a
particular object model at all (this can be achieved by using the
cache access functions). This can be useful when you implement big
autonomous systems.
Lastly, the pcache system can easily be used to build your own custom
persistent cache scheme if you want (so you can have a fully
persistent, separate storage scheme if you want). So to set up - say,
a separately running and persistent global economic system that
handles its state independent from in-game objects, this is a good
place to build from.
.
Griatch