I believe this is because strict doesn't deal with filehandles. This is why not declaring a filehandle will never raise a warning/error (but if you're using a non-existant filehandle you'll *probably* get an warning/error of some kind), and why they don't violate strict.
But if you're worried about keeping track of your filehandles and have a recent (see. 5.6.0+) version of perl just use scalars like so.
open(my $fh, "somefile.txt") or die("Ack - $!");
filemunger($fh);
# and so on and so forth
HTH
broquaint