Actually, perhaps there should be a construct similar to Java where you have to _make_ your object serializable (with a "implements Serializable"). Since a good default behaviour should save private variables, one might not want to make all objects serializable since that would essentially make the object all-public.
Also in java there is an implicit (or explicit) version id of an object. That is a good idea too (the implicit one is sort-of a hash based on the variable types of the class or something along those lines).