The way unRAID allows spanning of disks is called "User Shares". Basically, each top level folder on cache or array with the same name is a user share with the same name as the folder name. For example, if you have a top level folder named "media" on cache, disk1, and disk2, there is a user share named "media" which is the union of the contents of the /media folder on each of these disks.
Each user share has settings which control how writes to the user share are done. Any reads from a user share includes all disks with that folder regardless of those write settings.
The original purpose of cache was to increase write speed to the user shares. Each write to the parity array requires reads and writes so that parity can be calculated and maintained realtime. In more recent versions of unRAID with dockers and VMs, cache is also often used as the primary storage for user shares that are frequently read.
Each user share has settings which control how it uses cache. Those settings are detailed here: https://lime-technology.com/forums/topic/46802-faq-for-unraid-v6/?page=2#comment-537383
Mover mentioned at that link is a builtin script which runs on a user specified schedule, and moves user share contents to/from cache.
There is nothing in any of this that provides for read-caching data on some sort of "as needed" basis. There are just user shares that do or do not get moved to/from cache on a schedule.