But my point is this: XML is just data. When you give the XML to TemplateApply it takes this data and it turns it into something else. The id attribute was arbitrarily chosen to contain the slot name. I can't think of anything that would allow us to know a priori that TemplateApply would interpret the id attribute as the name of the slot. Similarly, in a sequence, TemplateApply interprets <wolfram:slot id="SequenceIndex"/> as the number corresponding to the current element's position in the sequence. You cannot know a priori - or am I wrong? - that "SequenceIndex" is the keyword for this. It might as well have been <wolfram:slot id="Hello" /> that was chosen for this purpose. So my point from the very beginning has been this: these are two arbitrarily chosen keywords (id and SequenceIndex) that have a very specific meaning to TemplateApply. In themselves they don't have any meaning at all, though id is commonly used for many different things, but they become meaningful in the context of TemplateApply.
If it's not documented that's how it is. I'm just stating why I thought it would be documented. In the list of XML attributes it could have said that "id" is used to specify slot names. There could have been a note somewhere that said that id="SequenceIndex" inside <wolfram:sequence /> represents the position of the current element in the sequence.