> pass objects by reference.
It’s not an option. That’s how JS must behave.
> depending on exact syntax, will collect values in another array or object
Not in JS. Maybe you are referring to rest syntax? That is not specific to destructuring i.e. functions accept rest parameters.
> which allocates an object for each function call.
No, in JS non-primitives MUST be pass by reference.