Exchange always stores the Addresses for directory objects (eg things in the GAL) in the native EX Address (X500) address format. So the most common case you would see an EX address that doesn't get resolved which you use GetItem (or BindToItems) in you logic is where the directory object was deleted. Eg you have a recurring meeting that has attendees and one of those attendees leaves the company and the user account is deleted. If you want to reproduce this
Create a Test account
Create a meeting and invite that test account to that meeting so they are an attendee
Delete the Test account and wait for the directory replication to happen.
Try to retrieve the meeting you created, because the account nolonger exists it won't be able to resolve the EX Address to SMTP so you will just get the EX Address back.
The other cause I've see for this is when mailboxes are migrated using third party products that don't do the address translation correctly.
How to handle this X500 Address ( ie steps to convert this X500 address into valid email address)?
If the address exists in the GAL then resolvename should be able to resolve it to the SMTP address https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-resolve-ambiguous-names-by-using-ews-in-exchange-2013 (where this won't work if the directory object is hidden from the GAL).
How to Validate X500 Address ( ie to find whether this is valid X500 address or not)?
ResolveName should be able to do that or a Directory lookup of the proxyaddresses (eg use the Graph)