Yeah I feel your pain on wanting to cache everything, that’s where I started back last year.
But now with some great updates to UD like loaders in the Grids, Set and New Endpoint dynamically loading info is not as bad once you get the kinks sorted out.
I also do things like Session Cache - Say a list of customers that will be used across the pages. then I also have some Session Vars that carry page state and data across to other pages. so I can redirect from one page to another, create a Session Var and have the second page just use that data, or use it with another REST call.