HLSL_IR_STORE and HLSL_IR_RESOURCE_STORE exist though. I don't think you can use those as HLSL_IR_EXPR sources (right?), but that might not necessarily be obvious.
As this MR proves, we're not in an overabundance of documentation about the HLSL IR, that's sure.
In my interpretation, the fact that `HLSL_IR_STORE` and `HLSL_IR_RESOURCE_STORE` don't evaluate to a value is of little relevance. Even if they did, they are executed if the control flow reach them, not if their result is used.
I realize that my sentence "Nodes purely forward a value and have no side effects" has probably a poor choice of words: of course nodes, which we use essentially as a synonym for "instructions", of course do have side effects (in general, at least). What I wanted to say is probably more like "References purely forward a value [etc]": the act of recalling the value produced by an earlier node/instruction has no side effect, therefore the question if `MOVC` evaluates the operand which is not selected is empty: the operand doesn't bear any side effect, be it selected or not; and the referenced node/instruction is evaluated (possibly with side effects) independently of its value being selected by `MOVC` or not, simply by virtue of being in the control flow; it would have been evaluated even if `MOVC` didn't have it as an operand at all.