Not really, at least it shouldn’t. should already handle cases like this as concurrent operations can happen at any point. If you listed all the chunks at the beginning of operation there are absolutely no guarantees that this listing will stay like that for the remaining duration of the operation, it doesn’t lock storage. No -exclusive is needed because at worst different operation can upload the same chunk with the same content. Prune is different as it is the only operation that modifies the storage differently. So whether you read chunk listing at the beginning of operation from storage or from cache, there needs to be understanding that it is not necessarily the most recent state of the storage.
Having said that, I might be mistaken about re-reading the whole chunk list every time. It seems this is done on any first revision of a particular snapshot (and I’ve been making quite a few of those for testing), yet on subsequent backup runs the full listing is not executed, which cuts down on execution time quite a bit (full listing can take more than half an hour for 2-3TB repository). Check operations still need the whole listing, but that’s fine as there are probably not that many use cases of running multiple check commands against the same storage.