Then there is the expected rhythm of filling in the form as city,state,zip so putting zip first throws people off. I did a form once where we put the country above city/state/zip so we could do the wording for those more appropriately (e.g., switch to "postal code") and even that was annoying to many testers.
The only problem with this is that, while all ZIP codes have canonical names, some also have additional allowed names that users may identify closely with. So, if you auto-complete the canonical name, the user may think that you've made a mistake.
"The Postal Service designates one _default_ place name for each ZIP code... Additional place names may be recognized as _acceptable_ for a certain ZIP code."
This means that someone may continue to write their address as Smalltown, EG, 12345, when technically it is Bigtown, EG, 12345. Of course, this would not be the case with zip+4, which like the UK postal code system, identifies a much smaller grouping of addresses.
[1] http://en.wikipedia.org/wiki/ZIP_code#ZIP_codes_and_previous...
Of course, humans care about this stuff more than you can imagine. There was a minor kerfuffle in the Buffalo area a few years ago when a woman bought a house in Lancaster (an upscale suburb) only to find that the default placename for her zip code was Depew (a working-class suburb). She somehow managed to get someone at the newspaper to write a story about her plight, which included a note that her copy of Gourmet Magazine came late because she insisted on putting "Lancaster" in the city name. I'm not sure why that would affect anything unless she was also deliberately giving them the wrong zip code though.