Is there a good reason to manually remove event listeners from object's events if the reference to the object is going to be lost?
Nope. If you're looking at code which does this, it's probably because someone's read that events cause memory leaks, but not really understood why. (It's when the event subscriber is prevented from being collected because the event publisher has a reference to it. In your case, it's the publisher which is becoming eligible for garbage collection anyway, so that problem doesn't apply.)