I think that smart match tried to do too much. the use I had for it was "when" to allow for a more flexible "switch" construct than using a mix of "nswitch", "sswitch" and "rswitch" (and variations, as provided by various CPAN modules).
Things like "appearing as a value in an array", and other complexities, would be better accomplished by their own operators or functions.
]]>