1) Всё верно.
2) В стилях блока мы описываем только его внешний вид, внутренние отступы и т.д, блок не знает где он находится и какой его размер, позиционировать можно элементы.
к примеру у нас есть блок авторизации в хедере
<header class="header">
<div class="header__auth">
<div class="auth">
<div class="auth__item"></div>
<div class="auth__item"></div>
</div>
</div>
</header>
в .header__auth мы описываем положение и размер элемента, в .auth описываем внешний вид.
3) Только класс элемента, но бывают исключения, например используя модификаторы иногда можно воспользоваться каскадом.
4) Может, называете точно так-же как и другие элементы
пример:
<ul class="props__list">
<li class="props__item">
<span class="props__label">Weight:</span>
<span class="props__value">128</span>
</li>
</ul>
хорошие примеры можете посмотреть
тут
5) Не совсем понял вопроса.
6) cf = clearfix, общепринятый класс, используется как исключение из правил БЭМа, хотя и не приветствуется. Для интерактивности и щелчков нужно использовать модификаторы.
пример:
<a class="button button--is-active">click me</a>