This is not true.  A variable like `x` can definitely match a `Mul`.  I suspect the issue here is that `x` will have difficulty matching to `x*y` because `x` is on both sides.  I'd have to think for a while to see exactly why this is happening.