Determining whether something is big is easy. But returning a reference is something else that returning a copy. One could determine in a limited amount of cases whether returning a reference instead of a copy isn't hurtful (but not in general, as that will involve solving the halting problem), but
- Determining something like that takes time. Which means that each such case slows down. Even if in the end the conclusion is that the copy needs to be done after all.
- The gain for the programmer would be minimal. It's not that [@list] is shorter to write than \@list.
- Noone has written such a patch.
Given 1) and 2), even if someone did 3) I wouldn't bet on it it gets accepted.