У вас здесь 2 проблемы:
- нужны ли классы для динамического контента;
- как, если нужно, модифицировать структуру динамического контента.
Проблема структуры не относится к BEM, она относится к семантике и SEO.
Если же не смотреть на структуру и тэги (использовать ли small внутри или span, заворчивать ли в article) — то вопрос в сущности нужны ли классы на динамическом контенте или нет. Учитывая, что контент динамический, и нет необходимости иметь классы на тэгах, то допустимо сделать каскад на тэги от некоторого блока: например, dynamic-content или content, text.
Почему именно теги? Потому что WYSIWYG по умолчанию генерирует теги. Но вы можете использовать какие-то доп. инструменты, которые подправят итоговый html, расставят классы и т.д. (например, с помощью инструментов типа
https://github.com/posthtml/posthtml ).
При необходимости можно дополнительно пометить стили тегов классами.
<div class="text">
<h1>Caption <small>Some Foo Bar</small></h1>
<article>
<p>Lorem ipsum...</p>
<div class="text__p">Dolor sit...</div>
</article>
</div>
.text h1, .text__title { /* main title styles */ }
.text h1>small, .text__sub-title { /* sub-title styles */ }
.text p, .text__p { /* paragraph styles */ }
Таким образом вы инкапсулируете все пользовательские стили в одном месте (одном блоке) и не имеете проблем с созданием контента.