Rough (even very rough) estimates are perfectly fine for the Library view!
No one would be counting the precise number of dots, anyway, and if that number of dots changes between
before and
after first opening a book, so what? A rough, preliminary estimate (you could even say, guess) is still better than no length indication, in my opinion.
If Marvin can't see data such as the number of words in the book before actually opening the book for the first time, you could instruct Marvin to simply use the number of kilobytes in a file to decide on the preliminary number of dots. Naturally, that's imprecise because it doesn't take into account the book's formatting, presence of any images, etc., but it definitely seems better than having no educated guess at all.
The numeric progress indicator would be at the precise 0%, of course, the book as yet being unopened. But you might decide, say, that an EPUB file of 500 kilobytes would by default get the full row of 25 dots, while a file of 150 kilobytes size would only get 8 dots, etc. Once a book gets opened for the first time, the number of dots would be adjusted depending on (for example) the number of actual words in the book.