I also think it's better to trigger this path validation only when we want to touch the local filesystem. I checked DirCacheCheckout and found the following places which should be adapted:
- checkoutEntry /* most important */
- doCheckout()   /* when trying to delete files from 'removed' set and when calling mkdirs() for parent-dirs of updated files */
- removeEmptyParents()
- cleanUpConflicts()