It's more work to set up caching, but the performance will be better. So definitely if you will have concurrent access to the website and need reasonable performance. Setup a post-receive hook otherwise Trac will "sync on request", which can slow the page load time.
The reason is that the synchronization is not done asynchronous with the page processing, although I suppose that would be easier to do with the new async functionality in Python3:
There are two caching options that work together. There should probably be only one, but it's an artifact of early development of the plugin. I doubt there is a use-case in which you would not enable the persistent_cache if you've done the work to setup the repository hooks,
cached_repository = enabled
persistent_cache = enabled