I'm sure someone can find an objection. For example, Belfast (UK) is "GB BEL", but isn't actually in Great Britain (it is in "the United Kingdom of Great Britain and Northern Ireland").
Here, "GB" stands for "United Kingdom of Great Britain and Northern Ireland", not "Great Britain".
> The codes are chosen, according to the ISO 3166/MA, "to reflect the significant, unique component of the country name in order to allow a visual association between country name and country code".[5] For this reason, common components of country names like "Republic", "Kingdom", "United", "Federal" or "Democratic" are normally not used for deriving the code elements. As a consequence, for example, the United Kingdom is officially assigned the alpha-2 code GB rather than UK, based on its official name "United Kingdom of Great Britain and Northern Ireland" (although UK is reserved on the request of the United Kingdom). Some codes are chosen based on the native names of the countries. For example, Germany is assigned the alpha-2 code DE, based on its native name "Deutschland".
UN/LOCODE tends to have an abbreviation for most places.