In terms of mapping registers, yes, although this is also used to communicate some (probably exceptional cases), namely, semantics not produced by the VS, and mismatched masks.
I suppose we could say that it's a hard requirement if the shader is 3.0 or (eventually) if the target is GLSL or ARB. Of course such a condition can get arbitrarily complex.
It feels awkward to me to be that selective about it, because it *might* be necessary in all kinds of cases, and I doubt the caller is likely to *know* if it's necessary. Which is why I originally just wrote "should", and then later changed it to "must" with a blanket prohibition on not providing that information.
I've removed the hard requirement in the latest revision, and tried to provide wording that explains in more detail when you might need to provide the varying map.