Addresses in OSM are divided into their constituent parts, so you have separate house number, street (or place), city, suburb, country, etc.
Of course, you still need country-specific code to account for all the various abbreviations, e.g. Str. in German, or the cardinal directions and road type abbreviations common in the US (blvd, hwy, dr, etc. ... I've recently fixed a bunch of those in OSM and it's quite a list). Well, and checking alt_name, local names and names in other languages in OSM as well.
Of course, you still need country-specific code to account for all the various abbreviations, e.g. Str. in German, or the cardinal directions and road type abbreviations common in the US (blvd, hwy, dr, etc. ... I've recently fixed a bunch of those in OSM and it's quite a list). Well, and checking alt_name, local names and names in other languages in OSM as well.