упс, это верно ;) не учел)

а что, если добавить создание PubSub не просто в прототип глобального объекта, а добавить его в конструктор по типу:
var rep = Function.constructor;
Function.constructor = function(){
    this.pubSub = new PubSub();
    rep();
}
:)

Тогда для каждого экземпляра функции будет свой массив handlers