Возможно, стоит еще кое-что подправить:
1. в commonHandle переменная handlers попадает в window. Нужно var добавить.
2. непонятно зачем в elem.handle проверка (typeof Event !== "undefined")
Возможно, на тот случай, когда обработчик будет добавляться к элементу из другого фрейма (или сам Event в другом фрейме, а элемент в текущем). Но и в этом случае Event должен быть доступен.
3. содержимое commonHandle вынесено в отдельную функцию. Вероятно для увеличения производительности Event.add, но это делается в ущерб производительности elem.handle, которая имеет заметно больший приоритет.
4. конструкции типа:
for (var any in elem.events ) break;
if ( !any ) {
delete elem.handle
delete elem.events
}
возможно стоит заменить на:
for (var any in elem.events ) return;
delete elem.handle
delete elem.events
Там еще множество разных оптимизаций можно применить, но все они в ущерб читабельности. А эта вроде нет.