Stop trying to make a serialized form of data the same thing as the "live" data. Serialized data is a recipe for the live data, not the same thing.
Solving a problem can be easier when you realize the question was incorrect to begin with.
I don't think of programs running in memory to be the same thing as the source code I wrote either. There's too many steps between my fingers, the disk, the compiler, and the OS that can make this assumption horribly wrong.
I realize that having the code eventually tell the computer to do what you mean is the point of a language, but we can't be naive to the way computers actually work, if we want to understand why this assumption can be dangerous and break down.
I feel this is a similar situation for ORMs. Perhaps the best way to code is not to pretend an ORM can be perfect.
I believe this is one of the things NoSQL will have taught us when we're all ready to jump on the next "new hawtness"