> In Mongoid 7.3.3 , or() now means filter documents that contain any of the argument conditions OR any of previous method conditions
It actually sounds like they "fixed" it to work the way you'd expect... but changing an API like this one in this way is extremely dangerous.
I wouldn't call what you have a code smell, you coded it correctly according to the Mongoid API at the time.
Mongoid is at fault here. An API that changes the behavior of a function are core as "or()" in this way is pure insanity - even if they were trying to make it do what it really should have in the first place, or if it were a major version, and they documented it well.
Note to self - avoid Mongoid.