I believe the new Google Contacts Data API (3.0) is baked. (though there are a few bugs)
http://code.google.com/intl/de-DE/apis/contacts/docs/3.0/developers_guide_protocol.html
It supports structured names and postal addresses. Now granted, the first time you sync using this API, things may not come out the way you expect. BUT, once you get them cleaned up in TB and they get sync'd back to Google using the structured flavor, they should stay that way. The docs kinda explain how it all works and the caveats of the structured/formatted flavor interaction.
I have found, as have other developers, that the API is not baked. There are plenty of unresolved questions about structured postal addresses, custom labels not being encoded, contact and group IDs
recently being changed, things changing without any notification, etc. This version of their API is a significant improvement from the previous version, but it doesn't seem quite finished, yet.
I would suggest that gContactsSync just use the structured flavor and leave the formatted flavor alone.
I tried that in the past but whenever a contact with a structured postal address was edited through Gmail the structured components of the address were removed. So for now, 0.3 will add structured address components to contacts when they are first created from Thunderbird (if present) but it will not remove them. It synchronizes the formatted field with a new field in TB. I can try again but it doesn't sound like anything has changed.
So basically, while I can leave the formatted address alone, Google doesn't leave the structured address alone... There is
an open, low priority "enhancement" request for structured addresses. It has been open for quite a while now without much activity on Google's end.
I use an HTC Desire (very similar to Nexus One) phone and it uses structured addresses to sync with gmail. Still only running Android 2.1 and I also don't know for sure how much the contacts is an HTC sense UI thing and how much a google thing.
I don't own an Android phone (unfortunately) and I haven't really looked at the Android source so I can't really comment on this. Considering who develops Android and the fact that phones are fully localized this isn't surprising. Android phones are tailored to the location they are sold in, unlike gContactSync which is used worldwide without being localized for most of the world. I'd prefer not to write my own formatted address parser for addresses all over the world.
