I suggest that, until we roll out more of the machinery we intend to roll out, such as type classes, that we restrict the operand x (the receiver LHS of the S.T.) to be a statically constant expression.
I think this is taking it way too far.*If* the receiver is a statically constant expression, *then* it should be possible to get better type checking / translation. But isn't constraining the receiver to be a static constant just more of the same sort of nannyism that you've been objecting to?