The move assignment is defined in terms of reset and release, and so it's essentially doing this:
ref_to_value_of_0.reset(ref_to_value_of_0.release())
If you work out how this is evaluated you will find it to be a safe "no-op". It releases the owned pointer, frees a null, then sets its pointer back to original value.
I don't really understand why you are doing that though.