One more alternative for discussion:
Use a DV_SCALE with a fairly simple spec change making the value attribute (but not the symbol attribute) optional*.
Rationale: DV_SCALE has been explicitly developed to pragmatically support the oddities of scores/scales and if this what is explicitly modelled in such scales it should be directly supported by the datatype as well. Seems to be more straightforward to me than trying to make null_flavours work for this.
(* Minor detail: This may also need a tweak to the wording of is_strictly_comparable_to and maybe an invariant to indicate that it is not possible for symbol/code_string to be blank and the value attribute null)