I haven't been able to get the class in its full context here however wont this stop people from setting new array keys in a subdocument, i.e.:

    $user->addresses[12323] = array('blah');

Where key `12323` did not previously exist?

Maybe I am wrong and over looked another function around here.