Everything being passed by object reference just means every case is equally unclear.
answer = frobnicate(foo)
If you mean that it can modify it, you should say that. It can't destroy it as that term is generally understood.
No. It can’t. It can only destroy its own reference to foo, not the calling scope’s reference.
If you mean that it can modify it, you should say that. It can't destroy it as that term is generally understood.