It seems that goto ""; and goto "\x00";
have the same behaviour. Peeking in the sources of Perl,
one sees several *label tests (a test which is
false if label points to a NUL character). This
might explain why Perl isn't complaining (although the source
for goto is long and most of it I don't understand), but it
doesn't explain why the warn 2 isn't executed.