(I work in SmartyStreets, where we research and experiment with UX related to the address).
The country must go first. Then, you can customize the appearance of the form, if desired, for certain countries, so that users feel more comfortable entering their address.
However, going back completely from the widest to the narrowest type of region is not the best strategy because it will discard the users. I have written about this here. (In addition, some mention has been made of the use of zip codes to autocomplete cities / states: you do not want to trust the zip / postal code to do so, because they change frequently, and in the US At least one zip code it is often assigned to several cities / states, while the city / state almost never changes.)
What you should do is put the next address field. Ideally, combine the largest number of address fields into one so that users can enter their address in a natural way for them. (But do not forget to check your entry or you might be suffering later). Even more ideal, start with the address field and then automatically complete the rest from there. This is the most natural thing for users.
For example, here is a free address autocompletion service that fills the city, the state, and then verifies that the zip code is obtained after the user has written only (part of) his address. Here is some more information about the autocomplete address. It also works in free form address fields.
The autocomplete address is difficult; read some of the UX lessons we learned during development.