Read-only should be read-only. Fair enough.
As I said, I'm sympathetic to the realities of maintaining a standard which apparently was the case here.
Waxing philosophically though...aside from purely historical implementation considerations, why should the creation of a tag cause a write to the table itself ... especially an additional tag, when a pointer to the related index file should already exist and therefore need not be written. Are the tags themselves actually stored in the .dbf? Weird...I thought conventional DB practice would name the .cdx (or other index file) then leave the details related to specific indexes in the index files themselves. This would have allowed adherence to SQL's write prohibition on the SELECT target and still allowed for creating multiple indexes for runtime use only.
"The Iron Fish: The water is cold...but the fish don't mind"
...Jay Jenks, boyhood chum