I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.
Note the lack of an accent on the words I have highlighted.
The above documentation is incorrect when it says "this database is mounted as read-only". In fact it is mounted RW. But the %DB_CACHE security resource that controls access to it only grants R as its public permission. In other words, every process can read code or data from it but only processes with additional privileges can write to it.
It seems that the ^%cspSession global was relocated from CACHETEMP to CACHE. In CACHETEMP it would have been writable by every process; in CACHE it is better protected.