Первый вариант совершенно не читабелен и ему есть альтернатива в виде верстки js (2 вариант), но с ним проще генерировать virtual Dom (привет реакт)
Второй вариант удобен тем что есть возможность сразу и наглядно подставлять данные и генерировать блоки верстки, при этом не засоряя Dom ни лишними блоками ни лишними слушателями. Сложнее создать virtual Dom, т.к нужно много парсить
Третий вариант Засоряет все и вся блоками, слушателями и вообще медленный