I seldomly include the line number in my error messages. The vast majority of my usage of 'die' is after a system command:
open(...) or die(...);
chmod(...) or die(...);
If I can't open a file for some reason (it doesn't exist, I don't have permission, whatever), all I care about is which file did the program try to open, and why can't it open the file. It doesn't matter whether it tried to open the file on line 23, or on line 389 - dies not being caught by eval will report to the user, and should contain only information that's relevant to the user. Line numbers aren't.
The second largest group of die usage are meant as exceptions. Again, line numbers are useless - the die is supposed to be catched (or escalated to a real die), and I need an informative message or datastructure. That's what I'll inspect in $@ - not a line number.
I might want to know line-numbers is during debugging. But croak() already gives a stack-trace, and that is often already enough.
The compiler emitting line-number on syntax error, now that's a useful use of line numbers.