Looking at your question - zip codes and cities can overlap. Generally, in the US at least, zip codes are dictated and practically used by ups/fedex/usps.
I don't know how city borders are defined....and actually they are likely defined in many different ways (ie. a river or something), but I'm nearly positive zip codes and city borders are independent sets with correlational properties, but not identical properties. That's why you're seeing what you see.
Also keep in mind zip codes will change and modulate due to practicality for the post office. As the population density of areas for them to deliver stuff at changes, they will adapt to that, because zip codes have a true, practical, geospatial, purpose - city borders...not so much except for when certain applicable local city or county (which creates more overlap) has "noise level limits at x times" for instance.