I think I have a clearer picture now than I had previously: for instructions, the operand parser evaluates expressions, while for DC/DS operands, the operand parser evaluates duplication factors. For example:
LHI 0,2X'FF' is invalid because the operand is not an expression LHI 0.2*X'FF' is valid, and the operand has value X'1FE' DC 2X'FF' generates X'FFFF' DC 2*X'FF' is invalid because the operand is not a duplication factor So I see no language "anomaly", but perhaps a lack of detailed explanation in the Language Reference. John Ehrman