Bounce processing doesn't catch pattern "user doesn't exist"
CiviCRM bounce processing analyzes the bounce text patterns, and decides what kind of bounce type it is. This is a fragile process, but there seems to be no better solution, since there is no general standardization of bounce patterns.
Some email providers throw the bounce pattern "user doesn't exist", which is not found, and therefore results in bounce_type "syntax". However, this bounce pattern should result in immediately switching the email address to "inactive".
insert into civicrm_mailing_bounce_pattern (bounce_type_id, pattern) values (6, 'user doesn't exist');