I've also tried it on my own project, it behaved the same.
Furthermore, when running on the real device, detach was called only on purchasing then never got called again. But the renewal transaction could be found in the receipt using the old way.
Topic:
App & System Services
SubTopic:
StoreKit
Tags: