Поверх верхней картинки идет полупрозрачный градиент выше текст. Как писал выше верстка адаптивная. При уменьшении ширины текст будет растягивать по высоте верхний блок
Полный отказ от каскада не стоит пропагандировать и использовать, например в случае submenu__item a вполне нормальная вещь, и ничего в этом страшного нет.
Важнее по максиму стараться сохранить изолированность блоков. Иногда приходится прописывать поведение для элементов других блоков при изменении состояния родительского блока (элемента). Это тоже вполне нормально, просто этого нужно по максимуму избегать.
Просто изначальная идеология css не совпадает с идеологией БЭМ.
«Какие стили в этом случае прописываются для класса menu__item_submenu а »
Никакие, это будет вмешательство в другй блок и для submenu тоже ничего не нужно. Вообще все зависит от ситуации, мы сейчас обсуждаем что то очень абстрактное.
«По моменту с header__logo, header__menu и header__info, также, не понимаю, почему эти блоки являются элементами для header. »
это не блоки а элменты, в которых уже лежат свои блоки. нужны они для того чтобы не позицонировать сами блоки