Oba podejścia mają zalety i wady. Zwracanie JSON lub XML z serwera i używanie szablonów javascript do konwersji na HTML jest bardziej RESTful i ma tę zaletę, że oddziela dane i prezentację i umożliwia wielu użytkownikom łatwe korzystanie z niego. Wady to to, że jest więcej pracy do wykonania w javascript.
Z drugiej strony, jeśli serwer zwraca HTML, wszystko co musisz zrobić, to wstawić go gdzieś do DOM. Niestety w tym przypadku markup i dane są mieszane i innym klientom trudniej byłoby wyodrębnić dane bez formowania (wyobraź sobie na przykład komputer lub aplikację mobilną, która chce korzystać z usług z Twojej witryny).
IMHO, jeśli jedynym konsumentem jest Twoja witryna, wówczas lepszym rozwiązaniem będzie zwracanie kodu HTML.
Posiadanie serwera, który wysyła HTML bardziej ciasno paruje to, co masz na serwerze z tym, co masz uruchomione w przeglądarce. Jeśli chcesz zrobić coś więcej niż jedną rzecz z tym wynikiem, nawet na tej samej stronie, to posiadanie JSON będzie wielką wygraną. Innymi słowy, jeśli generujesz dynamiczny kod HTML na serwerze, dodałeś kolejne miejsce, w którym musisz rozwiązać problem z układem, a firebug nie będzie tak pomocny, ponieważ będziesz musiał zmienić logiki po stronie serwera, aby rozwiązać problemy z prezentacją. – Suppressingfire