I expanded the .pak file from my game to figure out what's going on.

In my current version (Steam, latest patch and DLC applied), the Object.txt file has two entries for the attribute book:

SKILLBOOK_StatPoint: Unique flag not set
SKILLBOOK_StatPoint_Teller: Unique flag set

Meanwhile, in the TreasureTable.txt file, the Teller only carries the second (unique) book. When I changed it to the first book, she restocked it on level-up. Same thing applies to the attribute book, I assume.

My guess is that Larian added the unique books to prevent her from restocking, but kept the old ones in there to avoid bugs. Additionally, I have heard that the Steam version on PC may be a little out of sync with the version on Mac and the GoG versions, so it's possible this change hasn't propagated out to everyone yet. That's my best guess, at least.