Tightening the tolerance can get the desired behavior during the setup phase of the code, but then maybe that is too restrictive of a tolerance to impose upon students for their answers. So it inconveniently needs some tolerance setting and re-setting. (In the problem file that led me here, this tolerance is irrelevant to student answers, so I've just tightened it to something like 0.0000001.)
This is maybe just me, but I can be OK with having the comparison operators be fuzzy on MathObjects. There is something about the min() and max() functions where I'm not so comfortable. They rely on the fuzzy comparisons in a "sneaky" gotcha kind of way. Maybe the distinction is only my perception.