Embora seja correto que createchama newe, em seguida, savehá uma grande diferença entre as duas alternativas em seus valores de retorno.
Saveretorna um trueou falsedependendo se o objeto foi salvo com sucesso no banco de dados ou não. Isso pode ser usado para controle de fluxo, conforme o primeiro exemplo da pergunta acima.
Createretornará o modelo independentemente de o objeto ter sido salvo ou não. Isso tem implicações para o código acima, pois a ramificação superior da ifinstrução sempre será executada mesmo se o objeto falhar nas validações e não for salvo.
Se você usa createa lógica de ramificação, corre o risco de falhas silenciosas, o que não é o caso se você usar new+ save.
create! não sofre do mesmo problema que gera e exceção se o registro for inválido.
A createalternativa pode ser útil em controladores onde respond_withé usado para respostas de API (JSON / XML). Nesse caso, a existência de erros no objeto fará com que os erros sejam retornados na resposta com um status de unprocessable_entity, que é exatamente o que você deseja de uma API.
Eu sempre usaria a opção new+ savepara html, especialmente se você estiver contando com o valor de retorno para controle de fluxo.