Above two examples are not identical. Later one is something low-level, and it's just asking for trouble (for example in cases like f2($1), f2($.) or f2($x, $x) when z() modifies arguments ).
(NOTE: another common point of view is that caller of such functions is asking for trouble)
my ($x, $y) = @_;
my $x = 4;