Fascinating indeed, but personally I'm a little wary of what seems to be a fairly low-level solution. I think that for persistence to be sane, you'd need to manage game entities at a higher level than the memory structures. After all, the whole point of copyovers is to change code, which can mean changing data structures: a straight memory map probably wouldn't work (and might even cause crashes).
For the codebase I recently resumed development on (woot) I'm thinking that the best way to do this is to have self-describing storage formats, where fields fully specify their type, name, etc. -- then the loader can decide what to do with them.