I'd say there are 3 kinds of HLSL semantics:
SV_*group - these are "system value" semantics which DO carry special meanings (e.g. assign special input/output data to/from shader stages)
- predefined semantics - e.g.
POSITIONand so on... They are mentioned in the docs but I failed to find any special meaning assigned to them
- semantics defined be the user - which can be anything (e.g.
MY_AWESOME_TEXTURE_SEMANTIC) which apparently have no special meaning either
In addition, the docs say that more than one input/output value can have the same semantic assigned (e.g. '
NORMAL2). I guess that it doesn't include the
SV_* group, though.
So besides the first group - do semantics carry any meaning at all? Do they even serve any purpose at all? :P