Yes, Perl 6 gave whiplash to Perl 5 here; originally it was defined symmetrically, but we broke that after we realized it was silly to define a switch that was impossible to optimize to a jump table even if all the "when" values are small integers. The right side of a smart match is now always considered a pattern that makes its own decision how to match the left side, and it might or might not pay attention to the type of the left side to do so.
In Perl 6, integer patterns always do integer comparison, and string patterns always do string comparison, regardless of the structure of the left side.
in reply to Re^5: Strange given/when deparsing
in thread Strange given/when deparsing