While I agree that having "clamp" operate on all Python types is a "good thing"[*], there is a complication.
If it were put in the math module, then it would pretty much have to be a floating point function. At least that was the case for math.isclose(). My first prototype of isclose() was written in Python, and carefully designed to work with any type (well, any numeric type -- i.e. Decimal and Fraction. But once it was decided to add it to the math module, that got removed, for (I think) two reasons.
1) The math module is written in C, and Guido at least (he was still BDFL then) rejected the idea of refactoring it to allow Python components (yes, that was proposed, and even started by, I think, Victor Stiner). Yes, you can write generic functions in C, but it's a lot more of a pain.
2) The rest of the math module is currently all about floats already, having begun as a wrapper around the C math library. So that continues. (there was a version added to cmath as well).
If it doesn't live in the math module, then all this is irrelevant.
-CHB
[*] Honestly, while you *could* use clamp() with any comparable objects, I really don't see a use case for anything non-numerical, but why not?