It's perfectly normal, and probably related to the Kobo driver's automatic metadata management: the driver expects to be talking to nickel, that means it bases most of its sanity checking on the state of the *nickel* database. If a book isn't in there, it assumes it doesn't exist anymore (e.g., was deleted from within Nickel). We, of course, never ever touch said db.
The good news is, you magically recover everything if you actually let nickel
scan your books once in a while (and then let calibre pick the changes up again).
The quirky bit is that if you chain multiple USBMS session within KOReader without a Nickel scan in between, you "lose" the previous session's on-device metadata cache changes (which basically only means that those books "disappear" from calibre metadata searches, as that's the only thing in KOReader that actually uses it).
TL;DR:
* Either follow a strict "KOReader USBMS -> Nickel scan" workflow
* Or setup your calibre to *not* use the Kobo driver, and use the plain dumb USBMS driver instead.
(Disabling calibre's automatic metadata management and/or the metadata refresh on connect in the Kobo driver may also help, but I haven't tested that, because it kinda ruins most of what I use it for in the first place ^^).