OK, I’ll try to add aspects that we had not discussed yet.
Users may think DC is buggy if they see they chats appearing and disappearing
I’m not sure, but think you may be thinking of the current “archived chats” feature, that allows you to make entire chats disappear (only on a single client). I would suggest to rename that to “inactivate chats”.
Messages with the “archived message” state are more like “starred” messages to be kept (see Add a option to delete old messages from the server · Issue #512 · deltachat/deltachat-core-rust · GitHub). They don’t magically make entire chats appear or disappear, but are only used to distinguish and filter out messages within a chat, e.g. to keep the history shorter. Chats should only disappear after the user has really deleted all synced messages in a chat manually (on devices that do not have any “archived messages” left on the device).
If that chat would be kept in the chat list, it would be empty with no messages on the server. And because other clients can’t see any messages corresponding to this chat on the server, they have no idea this empty chat still exists. Newly connected clients can not get in sync and create it. Thus this would lead to inconsistencies with some clients still showing the empty chat, and others not.
also if they don’t see the chat they may think it was deleted
That’s the correct understanding, a chat won’t be listed (neither as active nor inactive) if there is not even a single (synced, archived, or starred) message left of it.
also in case they want to delete it on server using DC, how will they do this if the chat is not shown??
If messages are synced properly as proposed, and there is no chat shown in deltachat then there are no corresponding messages on the server, so there is nothing anybody could want to delete.
I guess what you may mean is that someone may want to delete all messages from the server without them getting deleted from the client (and the chat). And again, that’s what the (auto-)archive is for. If you set the number of synced messages to zero (means auto-archiving all, i.e. already the first message), then messages are archived quickly automatically and deleted from the server.