Методология БЭМ гласит, что вам не следует использовать какие-либо глобальные селекторы, такие как селекторы тегов, поэтому используйте nav__item и nav__link.
Та же история с активным модификатором.У вас не должно быть никаких глобальных сущностей (вы можете использовать миксы, но это немного другое).Поэтому лучший способ — использовать nav__item--active (или nav__item_state_active в классической нотации БЭМ).
А у BEM есть решения для JS, HTML (или шаблонов) и вообще для любой другой блочной технологии.
Основная идея заключается в том, что блокировать знает все о себе:как выглядит (css), как работает (js), какой html должен выдавать (шаблоны), свои тесты, документация, изображения и т.д.
И поскольку технология CSS блока навигации применяет правила декларативным образом (вы определяете некоторый селектор, и все узлы, соответствующие этому селектору, стилизованы под эти правила), вы можете описать js блока навигации точно так же.
Пожалуйста, взгляните на http://xslc.org/jquery-bem/ это плагин jquery, который дает вам возможность легко работать с блоками в режиме БЭМ.
А если вы используете какую-либо систему сборки, вы можете поместить все эти технологии в одну папку файловой системы:
blocks/
nav/
__list/
nav__list.css
nav__list.js
__item/
nav__item.css
nav.css
nav.js
nav.test.js
nav.png
nav.md
Имея такую файловую структуру, вы можете углубиться в то, что такое БЭМ, и попробовать i-bem.js: http://bem.info/articles/bem-js-main-terms/