I don't have any performance issues with the if. I didn't actually check it. I thought it would be more elegant to skip this check-every-time-the-method-is-invoked and I had no idea it will complicate things (it seemed quite simple).
I might very well stay with the `if`, but now I'm curious in general as to how to do this stuff.
Comment on Re^2: Creating a Moose object and serializing it