TLDR; Ansible handlers are added to the global namespace.
Suppose you've got a role which defines a handler MyHandler:
undefined
- name: MyHandler
...
listen: "some-topic"
Each time you import/include your role, a new reference to MyHandler is added to the global namespace.
As a result, when you notify your handler via the topics it listens to (ie notify: "some-topic"), all the references to MyHandler will be executed by Ansible.
If that's not what you want, you should notify the handler by name (ie notify: MyHandler) in which case Ansible will stop searching for other references as soon as it finds the first occurrence of MyHandler. That