Regarding duplicate books, that can be controlled with
only syncing selected shelfs. You can e.g. have a shelf "none kobo purchased books" that contain all side loaded books.
Regarding reading position sync, I've tried to document the technical reason on
on this page. On why syncing to kobo is bound to chapter start.
When syncing to KOReader
the last_percent field is set which prompts KOReader to open the book on that percentage.
Komga docs also warn about chapter boundary but I don't think they document why that is. I would need to have a look at their code.
I haven't played around much yet with the reading progress sync, but based on these initial findings, if it becomes known what x.y are in Kobo's DB, and how to map that to KOReader's x_pointer, than we could indeed unlock precision progress syncing.
I suspect the answer has something to do with the HTML inside the epub, and pointing to some specific element in there.
Since syncing from KOReader to Komga is based on chapter boundary, I deemed that using the same concept to sync to Kobo would suffice. As Kobo will sync the same boundary back to Komga. Which would be as if it was KOReader doing the syncing.
With the benefit of Kobo doing it, is a more seamless automatic experience.
Note that calibre-web doesn't support progress sync:
https://github.com/janeczku/calibre-web/issues/2298