Attribute based colocation allows reference to a node-attribute in a colocation constraint basically allowing to use the content of that node-attribute to be used instead of a node-name.
When a cluster is e.g. split over multiple sites having multiple nodes on each site one would put the site name into a node-attribute.
When an instance of a resource cloned over the whole cluster would now be promoted we should now be able to have all instances of another cloned resource on the same site to be promoted - given that promoted-max allows enough of the instances to be promoted.
Current behavior is roughly as it would be without the node-attribute given (Just the instance on the same node is being promoted).
With the introduction of a dummy primitive the desired behavior can be achieved.
Dummy primitive follows promoted role of the first clone while promoted role of the 2nd clone is colocated (with node-attribute holding the site-name) with the dummy primitive.
Maybe that can be helpful finding why it doesn't work with just the simple colocation promoted following promoted.