I can't see why Position is not usable. It is the exact position of the item in the list. If you give another index to the list, the ULV will have to translate this index to the real position. And I checked: dividers are not counted, so they are not a problem. To avoid any confusion, I prefer to define the terms: a separator is created by the user, a divider is created by the ULV (to separate the items). The ULV cannot know that an item is a separator because it does not care of what the item contains and what kind of item it is. So it's a bit difficult to count anything after a section when you don't know what is a section and where it is.
If there's a strong demand, I can add functions to handle that in the next version. In this case, you will have to pass a map/array/list to the list to indicate what items are separators. And the list will have a function to translate the given position or ItemID to 1) the separator index and 2) the position starting from this separator (or the contrary). It's not a bad idea and can be really useful in some cases.
Tag and ID are different things. A Tag is just a placeholder to store any user data related to the object. It's the same concept in all languages where you can find this property. Of course, you can store the ID of the object in it, but you can also store an array of integers, a random number used by the object, a reference to its parent, etc. You cannot say what Tag contains before looking at this content, so using this name in a specific way would be confusing. On the contrary, ID is a name widely used in the computer science to design the unique identifier of an object and nothing else. And I never said that the ItemID is not used by ULV ! Or I was drunk.

I said it was not managed by ULV and it is mainly for your own usage because the list doesn't need it to work. My list doesn't create it, doesn't change it, doesn't delete it. It's a convenient way for you to design precisely an item when you don't know exactly where it is in the list (after a sort for example) and you're free to create it with the number format or the sequence that you wish. The ID has been added especially for you, the user, not for internal reasons. ULV could work without it; ULV could use only positions. But that doesn't mean it is not used. It is used when you transmit it as a parameter (or this parameter would be useless). And the ULV sent it back to you whenever possible.