and I'm wondering whether the "and" should be an "or".
Interesting. I don't know if it is a bug, though, as this seems intentional and matches my experience. The idea being that if you want to label something, you use the :name tag, but this will make it so the second item is evaluated, producing a unique identifier. The unique identifier is then assigned instead of the :name tag. If it was an, OR, however, then every element block would get a label, and that might be suboptimal given that not every block is referenced later.
I would still like to be able to add my own name tags, but understand why this might have been changed to avoid to blocks having the same label.