Потому что связь подписчиков с событием осуществляется путем помещения массива функций-обработчиков в хэш под ключом, который является именем события (или канала, если речь о pubsub). Это самый простой и очевидный механизм. С появлением Map из ES2015 ключом может служить любой объект, не только строка.
Один из способов избавиться от т.н. «stringly typed» кода — использовать конструкции типа
chrome.browserAction.onClicked.addListener(function callback)
, как сделано в хромовских расширениях.
Я полагаю, ваш подход имеет право на жизнь (и мне он нравится даже больше гуглохромовского). Но, боюсь, широкого распространения он не получит.