Originally Posted by kovidgoyal
@chaley: Why not maintain a uuid->filename map on the device? That way if a file already exists, the filename to be used could be looked up from the map.
This doesn't solve half the problem, having different names on different devices for the same book. As far as I can tell, in general syncing reading positions requires the file names to be identical on each device; this is certainly true for moon+. Each device can get the file from a different path, so name generation for new books on all paths must result in the same value.
FWIW: we actually built what you are suggesting, then took it out because it invisibly changed fundamental calibre/device/template behavior. It would be easy to put it back, this time as an option, but as I said it doesn't solve the multiple-device problem.