1) каким таким движком?
2) Что? имеется в виду изменения оформления в зависимости от контекста? Это ж вроде как противоречит философии bem, не?
3) нет не ужас. Стили должны быть независимыми. Если у вас во всех блоках текст должен быть красным - так и сделайте его красным при помощи какого-то общего класса, например txt-red или еще как более очевидно назвать (text-hightlight, text-warning) в зависимости от целей преследуемых.
Но а так, используйте less для минимизации копипасты между классами, и думайте сами. bem удобно на очень больших и часто меняющихся проектах, но это дело никак не фиксирует то, как вы должны что делать. Это скорее рекомендация, по большей части годная к слову.