Получается что блок это чисто Namespace для других сущностей.
как-то так да. Вот только у вас пример не правильный.
<div class="blog">
<div class="header header_blog">Заголовок блога</div>
<div class="date date_blog">19.19.1900</div>
<div class="body body_blog">текст</div>
</div>
<div class="comment">
<div class="comment_date date">19.19.1900</div>
<div class="comment_body body">текст</div>
</div>
Вот так правильно.
Далее, помимо того что блок это "неэмспейс" он так же может содержать базовые стили, но не размеры и позиционирование. За это отвечают элементы.
Грубо говоря.
.blog{}
.blog__date{} // задает положение даты в... блоге? В блоге нет дат, даты есть у постов, так что выносим это в .post
.blog__header{} // задает положение заголовка, ширина, паддинги, маргины
.blog__body{} //задает положение содержимого в блоге, только положение на странице, ширина, паддинги, маргины