I do not recommend changing the defaults of cached and saving when using the function. They’re for internal use.
The cache is the data stored in the main table which represents the data in the dependent table. For example. The entry’s phone numbers are saved in the phone number table and as a serialized representation of the phone number table data in the primary entry table in the phone column. This allows the phone data to be displayed without having to do extra data queries. The is much more performant. The only time the actual phone number table data is used is when you edit the entry and when searches are done. Performing a search on a table is far faster that trying to search serialized strings.
Hoe that helps!