A guideline written as “prefer X over Y” sets a default without banning the alternative. Y stays valid, but choosing it needs a stated reason. The form comes from the Agile Manifesto, whose values are all in this shape, and its authors have had to point out that people misread it: “A lot of people read the manifesto as ‘Do X not Y’. This was never the intention. The wording is ‘Prefer X over Y’. Sometimes Y is better, but you need to justify why you are doing Y.” (agilemanifesto.help)
The form does two jobs at once. The default removes a decision from the common case, so the reader (or an agent) doesn’t re-litigate it every time. The justification requirement keeps the uncommon case open, so the guideline can’t calcify into a rule that nobody remembers the reason for. Compared with “do X not Y”, it trades a little rigidity for the nuance that the other side sometimes wins, and it makes the burden of proof explicit: X is free, Y costs a sentence.
It also names an axis rather than a value. “Warm over cool” says which direction to lean on the temperature axis; “use cream” names one point on it and goes stale when taste moves. This makes the form a good fit for preferences that need to survive drift.
When the set of justified Ys is empty, the guideline has become a rule and should be written as one. “No em dashes” is not “prefer no em dashes”, because the reason (perceived quality) means a correct em dash still loses. See 0005-personal-domain-zen-captures-processes for the vault’s stance on capturing preferences at the level of the axis rather than the current winner.