Thankyou for restating something I am perfectly aware of.

OSM globally should not be interested in providing vagueness for legal disputes. This project is best-effort data trying to capture something that is verifiable on the ground, in this case, two numbers written on a sign for maxheight:legal.

By analogy, where you are expressing multiple legal restrictions as a tag, tag the smallest legally restrictive value into maxheight:legal. Do this just as you would tag the most physically restrictive - smallest - height you have personally surveyed into maxheight:physical.

Then when that’s done, put the smallest of maxheight:physical and maxheight:legal into maxheight, verbatim or converted.

Note that if it is desirable to establish a difference between a legal and a physical maxheight, this [maxheight] should be the lesser of the two.
https://wiki.openstreetmap.org/wiki/Key:maxheight

Fine if this can be done with specific editor support allowing people to gather the info very conveniently, with particular reference to StreetComplete and SCEE. Otherwise, a note suffices for all but pedants, and can be worked on later by people in the know about traffic sign things.

Absurd to express the same quantity twice in a functional tag that addresses one single concern, simply and machine-readably, unless you are (somehow) recording exactly what the sign says in a tag dedicated to that concern.