When a valueset binding is relevant functionally - for example the use of ISO country codes is relevant functionally so that every implementation uses them..
When a data type is relevant functionally