Wenn man ohnehin mit Event Delegation arbeitet, kann man auch die Klicks auf oberster Ebene filtern, anstatt das Bubbling auf unterster Ebene bei jedem li-Elemente einzeln herauszufiltern.
Überhaupt leuchtet mir gerade nicht ein, wieso jedes li den cancel_bubble-Handler braucht.
linklist_wrapper.onclick = cancel_bubble;
... sollte doch schon alle Event stoppen, die vom linklist-Wrapper *oder* seinen Kindelementen aufsteigen.
Mathias