I was thinking about this last week, but I imagine the point of the original check was that so only out internal code modifies the properties, not userland code at all (even inheriting classes). I suppose this is the best compromise, though?