I’m not sure to understand, but for me tag are interpeted as @key(value).
I use @delegate(bob) @delegate(paul), and can ask which tasks are delegated (search @delegate) and which one are delegated to paul (search @delegate = paul)
Task paper is plain text so yes, @tag written outside this app are recognized as tag (i edit mine inside DevonthinkPro)
In this case the second tag is ignored. If you type into TaskPaper you’ll see that it also isn’t syntax highlighted. Even if they had same exact value the second one would be ignored.
All tags that you enter using the @tagsyntax are namespaced in the data model by prepending data- to get the final attribute name. So there’s no possibility of conflict. @id(myownid) is stored as the attribute data-id.
Edit I need to look at the code a bit more before giving a full answer on this second question. I’ll answer in the github issue. There are some edge cases that I hadn’t expected, try to remember the exact history and logic. In anycase I don’t expect any changes to the logic, lots of scripts and themes rely on the current behavior.