I don't think we should be retaining those
Take the case where the observer is holding an unowned reference to it's parent. Executing code then when the object should be released could potentially be dangerous.