Не нужно там ничего подключать через одно место. Один раз собирается и потом подключается, как любая другая библиотека.
Громоздкости не заметил, в API два метода — init и render. Если это громоздко, то сдаюсь.
Немного подробнее: когда после объявления функции идет открывающаяся круглая скобка — это означает, что вы вызываете функцию, которую только что объявили. В частности, поэтому можно написать (function() {}()).
В вашем случае надо добавить точку с запятой между объявлением lo.init и самовызывающейся функцией.
При этом .live может использоваться как и для делегированных событий (в формате .on(events, selector, handler)), так и для прямого «слушания» событий (.on(events, handler))
js- затем, чтобы не зависеть от верстки. Все эти parent, sibling и прочее жестко завязаны на конкретную структуру. Верстальщик может поменять название классов, добавить уровень вложенности и т.д. Но классы с таким префиксом они обычно не трогают:)
2. Братья — .prev, .next и .siblings
насчет десяти элементов — искать, конечно, нужно в таком контейнере, который подразумевает, что такой элемент только один.
Простите, если мои комменты выглядят, как голая критика. Я просто пытался выразить ту мысль, что если избавится от чейнинга, то в коде будет проще разбираться. Вы возразили, что чейнинг — это де оптимально, и я привел контраргумент.
От повторных вызовов $(this) избавляются, кладя полученное значение в переменную: var $this = $(this).
От чейнинга избавляются, добавляя в верстку классы с префиксом js-<что-то>, тогда получение нужного значения сводится просто к $this.find('.js-attribute').data('attribute')
И еще — не используйте new Object, пишите просто {}.