While the Mill operations are polymorphic at issue, they are not so at retire: the latency of (most) operations varies with the actual widths of the operands.
Which means the specializer needs to know the size of the operands. I was thinking otherwise. Simplifies a consideration for division.
A security consideration: when calling a service what prevents a parameter of the wrong size being passed and dropping a value on the wrong location on the belt? Is an exception thrown if operand sizes mismatch?