You are missing && in your condition, i.e.,
@rsubset df :x == 1 || :x == 2 :y == 3
# parses as
@rsubset(df, :x == 1 || :x == 2, :y == 3)
# which is the same as
@rsubset df ((:x == 1 || :x == 2) && :y == 3)
# as multiple conditions get combined via `and`
# In contrast
@rsubset df :x == 1 || :x == 2 && :y == 3
# parses as
@rsubset(df, (:x == 1 || (:x == 2 && :y == 3)))
# and gives the same result as
filter(d -> d.x == 1 || d.x == 2 && d.y == 3, df)