Google indeed organizes data under the hood, often in a way that screws up the data.
For example, when I enter contacts with two first names on my phone (Maria Carmen, John Paul, etc.), sync with google, and then sync it back to my phone, the second first name ends up in the middle name field.
And because the contacts list only displays first and last names, the difference between Maria and Maria Carmen becomes invisible unless I tap the name to see the full record.
Double last names are split into last name and name suffix upon syncing.
It gets even worse if you add non-name data in the first name field. A first name like "KLM ticket office" syncs back and forth to KLM (first name), ticket (middle name), office (family name).
And it gets really annoying if you sync "Alfredo's Pizza (open 'till 3 am)" to google and back to your phone. You'll end up with something like "am)" as first name (since it's not listed under A anymore you'd think you lost the contact!), and most of the other parts of the entry end up in fields that are not displayed in the contacts list.
Syncing addresses goes wrong too. When I send my contacts list to google and then back to my phone, the entire address ends up in the street name field. Google also doesn't seem to understand that the position of house number and zip code depends on the country. For example, it's
"2e Jacob van Kampenstraat 13, 1069XX Amsterdam,"
vs.
"42 Leister Square, London WC1 6XX,"
and
"666, 42nd St, New York, NY 10001."
Google just assumes that all addresses worldwide follow the american number/street/city/state/zip sequence. There are over 6 billion reasons why that is not a good idea.
Which leads to the next question: is there a contacts/dialer app replacement that doesn't have these issues? My address book is full of people from all over the world, so I'm looking for a contacts app that knows how to deal with different formats for names and addresses.