Of course nothing prevents us from saying UAs MUST NOT sniff but if they do
anyway they MUST use a given algorithm, right?
That's a contrary to duty imperative, which is something that's been
puzzling philosophers for centuries. A more sensible requirement
would be that user agents SHOULD NOT sniff (for reasons XYZ), but, if
they do, they MUST use a the following algorithm.
Except that in practice SHOULD NOT is treated as carte blanche to do the
undesirable thing. It has no teeth. MUST NOT doesn't much either, but
it's _something_ at least (in the sense that one can clearly claim that
violating a MUST NOT is a bug).
-Boris