Retaining does not really hurt the object and you are not going to screw up the lifecycle of the object as Core Data will happily fault it from under you.
The risk, and thus the badness, is if you hang onto an object that Core Data is deleting. From your application's point of view it has changed into a fault which is no big deal. However next time you go to touch that object and Core Data attempts to realize it (pull its properties, etc. back into memory) you will get an error and crash your app.
So the act of retaining an NSManagedObject does not cause an issue but hanging onto a reference (either by assign or retain) of an NSManagedObject that is getting deleted is a bad thing.