The main challenge I could think of from a technical perspective, is save-game loading. If you discover a book, but want to load an earlier save, then your ongoing compiled process needs to retroactively determine which books you have in a previous file, which might pose a whole lot of new issues and bugs. There is an easy solution, perhaps an only solution, but that'd mean significantly longer loading times, and larger save-file sizes. Personally I'd think either of those two issues aren't worth the trade-off, at least not in Larian's recent games where there really aren't that many loading screens unless you're save-scumming, or play frequent but short play-sessions.
There are ways around that. For example, an index of discovered books could be stored separately and be associated with a save file. The index could be very small. The book texts themselves take up very little space too. Presenting your library could be made to require just a few extra miliseconds during load time, I believe.
I have had to reload the game quite a few times because of missclicks and accidently having given equipment to the wrong character. But that will probably become less when the UI gets improved and/or I grow more accustomed to it.