Бэм не только о именовании. + или ~ или > тоже не имя класса, но они определяют соседей или создают зависимости или могут изменить что-то вне блока, что будет нарушением методологии
модификатор связывает в равной степени, как и псевдокласс
БЭМ ничего не запрещает. Она определяет правила и последствия их нарушений. Как и любая другая методология или паттерн. Например SOLID или любой другой подход к разработке