when internally uses the smart match operator ~~, so when :e really does $given ~~ :e instead of the method call $given.e; both test whether the file exists.
my $path = "/etc/passwd";
say $path.IO.e ?? "Exists" !! "Does not exist";
given $path.IO {
when :d { say "$path is a directory"; }
when :f { say "$path is a regular file"; }
when :e { say "$path is neither a directory nor a file, but it does exist"; }
default { say "$path does not exist" }
}
run ('touch', "♥ Unicode.txt");
say "♥ Unicode.txt".IO.e; # "True"
say "♥ Unicode.txt".IO ~~ :e; # same