Because the standard library has reference counting with no static checking to avoid cycles, and it was decided to also have safe mem::forget since it can be (mostly) emulated with the former.
It has no such static checking because it was deemed to reduce expressiveness, while not impacting memory safety.
It has no such static checking because it was deemed to reduce expressiveness, while not impacting memory safety.