@guru The drawback is that if we do not mark messages as read, your unread count will explode: All groups and chats will show the blue bubble with 999+ unread messages after some time. You will not know which message you have already seen and which not. How will that work?
Telegram server expects in order for you to keep track of unread messages (and also positioning the view when opening a chat on the last unread message) that you submit read receipts. They will be relayed to all other parties in this chat, if needed. You cannot influence this.
I will not implement a "shadow db" that keeps track of "locally read" and corresponding network messages, since that defeats the purpose of the tdlib library which encapsulates the whole Telegram protocol and also message store for us. You m,ight however want to file an issue here: https://github.com/tdlib/td/issues - those guys could in theory provide an option to not send read receipts.
Again I expect they will refuse, since if its not implemented on server side, its complicated and unreliable.