for dfdl:choiceLength, the description says "Specifies the length of the choice in bytes..." clearly this should use dfdl:lengthUnits.
We have tons of cases where byte granularity is not sufficient, and this is hard to work around. You have to use dfdl:choiceLengthKind='implicit' and then carefully pad the branches to the same length in bits. It's painful.