Для начала положу ссылку
https://ru.bem.info/methodology/ - это очень хорошая методология, которую я советую придерживаться всем.
Ответы на конкретные вопросы:
1. Такие моменты не влияют на натягивание верстки на cms, но это не значит что нужно делать не правильно.
В включают абзацы текста когда его много. В остальных случаях div/span + не забывайте про семантическую верстку (ссылка 2
https://htmlacademy.ru/blog/html/semantics )
2. Если это отдельная крупная картинка которая является единицей контента сама по себе (например фотка товара в интернет магазине, картинка внутри статьи и тд) - то однозначно
<img src="..." alt="..."
. Если это какие-то элементы дизайна, кнопки, переключатели и тд - то через css.
3. Лучше обговаривать этот вопрос с заказчиком. У кого-то уже есть используемая библиотека и это может быть не jquery. Кому-то вообще js не нужен.
4. Мне кажется хорошим тоном будет дополнительно отдать уже скомпилированный js в виде одного файла (без минификации). Есть не маленький шанс что натягивать это будет другой фрилансер не знакомый с версткой.