Your GMT "barnacle" analogy is excellent!! Here's a re-statement of my THEORY about what causes the GMT bug using your fantastic analogy:
The "barnacle" goes out on all appointments created on any iOS device running iOS 8 (maybe even earlier iOS versions). The "barnacle" attempts to acquire the time zone setting of the server you are syncing through. If that server publishes its clock time zone setting, the "barnacle" acquires it.
When the appointment with the "barnacle" attached to it syncs down to any other iOS 8 device, iOS 8 checks in with the barnacle. If iOS 8 sees that the "barnacle" has acquired the server's time zone setting, then it transposes the appointment to which the "barnacle" is attached into that time zone and displays the time zone (i.e. "(GMT)") on the user's calendar.
I hypothesize (can't confirm as absolute fact, but I can deduct this based on what I have learned from AppRiver etc.) that Google did something to its servers today to BLOCK the publishing of the server time clock time zone setting to clients (your iPhone etc.). The "barnacle" is still attached to any appointment created on any device running iOS 8.x, but when the appointment with the "barnacle" hits the Google server now, it doesn't find a time zone setting to acquire. It's "starved" of the data. So when the appointment syncs down to other iOS devices from Google, those devices still check in with the "barnacle" but the "barnacle" doesn't have any data: it just reports "NA" or "blank" or something. So iOS 8 on the receiving device leaves the appointment at the time the user intended to set it up for.
MS Exchange Servers remain unchanged (GMT alive and well) on this very same day that the Google servers changed to deprive the "barnacle" of the time zone setting. That is why, on this very same day, Google users report that the bug is gone, and MS Exchange users all report that they still see it. Nothing changed in iOS. There's also the substantial fact that Apple does not secretly push software updates out to iOS devices and does not install said updates without user's consent or acknowledgement (at least not that I or anyone else is aware of).
There are a few early reports back from people running iOS 8.2 Beta 5 that this bug is fixed as of that release. I believe (again, just what I can deduct based on what others have reported) that Apple has either: 1) removed the "barnacle-generating" code; or 2) changed the iOS 8 code so that data acquired by the "barnacle" is simply ignored by the receiving iOS device, and events are no longer transposed based on the data acquired by the "barnacle". I HYPOTHESIZE that previous versions of iOS either didn't generate the "barnacle" or they ignored it.
That's my THEORY 🙂 OK Backgammoner...... I can't 100% confirm this but it certainly would be a plausible explanation for what we have all seen, and it easily explains why the bug is gone from Google accounts yet remains on Exchange accounts on the very same day. It would also explain why users of some services (Google Exchange) that publish server clock time zone settings to clients experienced the bug, while users of other services (Yahoo!, Hotmail) that don't publish this information never experienced it.
And let me ask you this Backgammoner, since you are a programmer: although there may be other potential reasons/causes etc., the scenario I have described above is also totally plausible is it not?
When iOS 8.2 is released to the public some day, maybe we will be able to confirm this 100%. In the meantime, based on information you can find doing Google searches, I'm pretty optimistic that this bug is fixed in iOS 8.2 and that in fact, it is BUG that Apple never planned for or intended to inflict upon us.