Upon closer examination, it appears that for LMDB/LevelDB cursor behavior, the value() read call does not advance the cursor to the next Blob for successive calls.
The cursor is only advanced to the next Blob read when cursor_->Next() is called (comments say next iter).
So successive calls to value() read the same Blob, and the initial Blob is not ignored, just duplicate read.
And every Blob is duplicate read when the batch size is 1.