What is the preferred approach to registering observers on an NSManagedObject (since Core Data "'owns' the lifecycle" of managed objects)?
Am I correct that the way to do this is to listen for NSManagedObjectContextObjectsDidChange-Notification and call addObserver:... for NSInsertedObjectsKey and removeObserver:... for NSDeletedObjectsKey?
Yeah, you're correct. Observing the MOs directly will lead to trouble, for reasons you have already posted in your question (within the parentheses).