Единственное отличие, которое я вижу, это когда вы используете входы. Некоторые браузеры не распознают, что новые формы были добавлены в форму, а затем, при отправке, не включают эти данные.
При использовании appendChild этой проблемы не возникает. Таким образом, хорошей практикой является манипулирование DOM и правильное добавление.
Если вы считаете, что это слишком много работы, создайте каждый элемент и добавьте его, вы можете рассмотреть возможность использования некоторого фреймворка, чтобы сделать его быстрее. Например, jQuery позволяет вам использовать $(parent).html("<p>My dummy text here</p>")
и автоматически создавать для вас узлы.