TL;DR
Make books re-readable ad infinitum by making them a linked ref and activating them remotely.
Only by the merest happenstance did I make this discovery.
At the moment I am working on a "For-Sale" sign for my house. When activated the sign will force whoever activated it to read the sale notice (BOOK form) located in a remote cell the player can never access without console commands.
Since the "Can't be taken" checkbox on books is broken I needed to figure out some way to make the sign re-readable even if they player "took" the note every time.
For the most preliminary tests I was using the ActivateLinkedChestDummyScript to read the note when I activated the sign. The note was scripted to remove itself to a dedicated container should the player attempt to "take" it.
The test was a success and the player could repeatedly read and take the note without any issues - save that my OnContainerChanged events seemed a little unreliable. I got around this by writing a more advanced script on the For-Sale sign. It needs to do quite a few things anyway so I thought that removing any copies of the note from the player inventory was a good thing to do centrally.
After I removed the redundant scripts from the notes, and the ActivateLinkedChestDummyScript from the sign I noticed my notes could no longer be read repeatedly. I freaked out for about 2 whole seconds before I considered that the only thing that really changed was that I also removed the linked ref data.
To confirm this I quickly restored the linked ref's and everything works flawlessly.