The reason is that previously the array stored only the names of the callbacks, thus allowing one callback to exist multiple times in the array.
After introducing parameters to the callbacks, the structure of the array changed. Now the callbacks' name is the key of the array's entry and it's parameters are the value.
If the same callback is added a second time, the previous entry is overwritten.
Therefore the structure of the array needs another rework.
Related source code: