1. What is the function of the database cache in a non-pruned node?
Simply put: it reduces disk reads and writes. If you have loads of RAM the OS can handle read-cache, but the OS won't cache writes the way Bitcoin Core does when
dbcache is large enough (larger than
chainstate, currently about 12 GB).
Given plenty of non-volatile memory space, is there an ideal value?
This has nothing to do with non-volatile memory. How did you even come up with that?
What is the approximate range of data, minimum to maximum, as a function of dbcache in RAM? Yes, I stand corrected, the dbcache resides in volatile memory, but when a block is written, it resides in non-volatile memory. Correct? (PS. I came up with that because I'm 71 years old, and sometimes I get confused).