А каков сакральный смысл отлова события на document в данном случае?
Да, вы правы, у нас получается по сути тоже самое, что мы просто на объект навесим обработчик по сути.
Хотя если проверить элемент на котором произошло событие не только по селектору, а по набору элементов, то слушатель то у нас один все равно, просто он проверят наличие в некотором множестве. Думаю, что смысл делегирования все равно имеет место быть с точки зрения как производительности, так и работы с динамической моделью DOM.
$(document).on('change', '[data-my-plugin]', someHandler)
Думал об атрибуте, но это как-то кастыльно выглядит, пока ищу более нативное и элегантное решение, если не найду, то буду использовать что-то такое.
В вашем примере, я так понимаю, нельзя будет назначить разные обработчики, если мы вызовем свой метод myPlugin() на 2 разных наборах. Чтобы первый вызов один обработчик имел, а второй свой. Тогда для них придется selector уникальный составлять на каждый вызов. Это не гибко.
Возможно есть простой вариант не с использованием jQuery, это не принципиально.