Caches are deleted when a timeline is deleted. If there is a copy of the timeline it will share the cache. But if the original timeline is deleted it will take the caches with it and the copy will have to generate it's own.
Caches become orphaned when you delete cached clips from the timeline. This is one inconsistency in the cache management logic--deleting a timeline purges the caches, deleting a clip does not.
Yeah... I don't know how dependable this cache management is. We also have TBs of orphaned caches but we never delete projects. We just create another database. I just manually blow off old caches from time to time.