The default value returned by HTMLSelectAndOtherField::getDefault, null, does not pass the validation check, which expects an array with the second item a valid select option. This means that the form returns errors if the field is disabled, with no default value set.
Additionally, HTMLSelectAndOtherField::loadDataFromRequest builds an array that passes the validation check, but contains null as the final value, causing T222170.
Also, the validation check when the field is required only checks whether the select value is empty; it should also check whether the text value is empty.