I would think the behavior is completely expected.
Even if I manually deleted the entry from xf_user_connected_account, it will still show up, because the entry is still in xf_user_profile.connected_accounts.
Then, I can't disassociate the account, because the entry does not exist anymore in xf_user_connected_account.