Pattern match with multiple match options

I think your overall point is good but this is in fact false, both in matches and in the general case:

iex(1)> match?(x when x in [1.0], 1)
false
iex(2)> 1 in [1.0]
false