I see. I managed to get a hacky "solution" by using
aufs.
Basically, I mount the calibre library as read-only and on top of it I stack a read-write temporary folder (say /var/tmp/calibre-server-scratch), so if the calibre server wants to write to a file, aufs will use COW to copy the file and write the changes in the temporary location.
This probably means that I should kill the content server, clear the temp folder and then start it again every once in a while (cron script?) so that it will pick up any changes to the database.
I think that one caveat is to pay attention to the case-sensitivity of the filesystem of the calibre library and the one of the temp folder, in my case they're both on ext4 so I'm probably not going to be seeing any weird problems.