На самом деле разница действительно небольшая. Обработчик то один, просто на многих элементов, т.е утечек памяти не будет. Но это так. Всё равно решения не гуд.
Я лишь утверждаю, что contentEditable = true для каждого элемента - тот же "некрасивый" метод, как и обработчики на каждом элементе.
Целью то является именно "красивый" вариант - с одним обработчиком, и без лишних атрибутов.