Ugh, I had this huge long answer for you and I backed out without submitting.
Basically, it is the Google Algorithms and their constant changes to them. The reason the name of the city associated with that zip code comes back with location is that is a unique query, i.e the name of the town
If you type in the zip code into a google commercial maps (I am attaching some screen shots one is using the Google Commercial Public map ) google asks if you want to add location.
Is it because Google has so many more APIS out there to sell you? Is it because google wants everyone, including local businesses to only use them? is it world dominance? Who knows.
But what google is saying is that search with those numbers is not unique or specific enough. The Google stack overflow etc says that zipcode is now an identifier, like an adjective. Other wise those string of numbers could be a street number or another part of an address. Or Google does not have that zip in their database (hard to believe that but maybe)
I added some links for suggestions in our docs. Basically it is,, add a label in search form for more info to enter,
How to change the label when no results found ..whatever you deem helpful