The reason why ID OF makes a deep copy is because of this thing we call hyperblocks (and others call list comprehension or APL): Most monadic and dyadic numerical functions not only accept numbers as inputs but also lists of numbers
and arbitrarily nested lists of numbers:
in the case of a monadic function it's basically a deepmap operation on all the leafs. That's why ID ends up answering a deepcopy of whichever structure you hand it to.
Hyperblocks is actually something I'm unreasonably excited about. We've had it for 2 years now and I keep learning new stuff about it, and addressing problems in ways I never thought of before.