How to reproduce:
1. Place a bookshelf
2. Run `/data modify block <x> <y> <z> Items append value {Slot:2b, id:"minecraft:book",Count:1b}`
Expected behaviour:
Book should appear on the top right slot
Actual behaviour:
Book doesn't appear until the bookshelf is updated.
The visual aspect is controlled by block states, not NBT data. Getting a block update just makes it sync its states.
You're only telling it to get a book, not display it. (You cannot modify a block state with commands only).