Firstly there is something called reverse IP address lookup. This is when your Internet Service Provider gives information away about where you are connecting from. Then there's other big hints online users give away about their location, such as using a Chrome Browser on a mobile device or use Google Maps to look at their local vicinity. Each gives Google major indications as to where users actually are.
But this "guessing" does not go down to postcode level in Google Analytics.
My view is that some postcode area (e.g. PA = Paisley) are so broad they cover hundreds & hundreds of square miles and even postcode districts cover large amounts of land & people (e.g. PA1).
However postcodes themselves change over time can be so detailed as to cover as little as one house.... which would identify a person or household, which is against Google's data policy.