Curious about losing my cached thingies

This is something I’ve noticed for a while and I’m just curious. It’s not a bug, just odd to me.

On pretty much all my projects, and all versions I can remember, if I let either a bunch of time go by or (I have no clue which matters) if I do a whole bunch of stuff to another project, when I go back it has to recompile every shader in the entire project and rebuild mesh distance fields.

I know I never left the project in that state. I assumed each project had its own set of cache files. Is there some upper, engine-wide, limit that dictates how much stuff can be retained for quick access? Would it actually go in and remove some files?

Is there any way to avoid it or tell it not to rub out certain projects no matter how much time has passed?