The simple answer is that it is a bug in Perl.
Looking at perl.c shows that PERL5OPT is mostly processed via PERL_moreswitches() which mentions:
which seems strange. My guess is that PERL_moreswitches() was "enhanced" to allow this new usage by someone who didn't realize how this badly breaks #! and PERL5OPT. - tye (who wishes he had a revision-controlled copy of the Perl source)/* We allow -M'Module qw(Foo Bar)' */