This is indeed the reason that Ada 95 introduced bounded errors,
where the language allows the implementation to pick any value
in the base range of the type or raise an exception.
I think that's intuitively what most of us mean by "undefined" in this
discussion but you are quite right that it's good to formalize it better.