It's also not exactly original to Go... the Ur language, for instance, employs a request-oriented collector (arguably, though the documentation claims it does not use garbage collection).
Thanks for the link! I was actually at that talk :) To quote from the relevant slide:
* Transactions are integrated into Ur/Web at a deep level, so,
whenever we run out of space, we can always abort the
execution, allocate a larger heap, and restart.
* As a further optimization, we use region-based memory
management, inferring a stack structure to allow freeing
whole sets of objects at key points during execution.