Reference is just an index.
An object that is only responsible for passing input.
For example, in loop, if the original object changes, then the object passed from the Input node will also change.
If this is not checked, the Input node remembers the variable when it is obtained, storing it for the time being.
The above is my personal understanding, not necessarily right.
In detail, you can learn:
The difference between Reference and Instance in C++.