Using path names as the `unit of caching' is, I find, often a big problem. It means, for instance, that if I move a `world' (directory and all that is under it) then things will get confused. Also it means that if there are multiple paths to something (hard links) then it won't be viewed as being the same thing when reached along different paths.