É Task.WhenAll exigido no código de exemplo?

No código a seguir, task1 e task2 são independentes entre si e podem ser executados em paralelo. Qual é a diferença entre seguir duas implementações?

var task1 = GetList1Async();
var task2 = GetList2Async();

await Task.WhenAll(task1, task2);

var result1 = await task1; 
var result2 = await task2; 

e

var task1 = GetList1Async();
var task2 = GetList2Async();

var result1 = await task1; 
var result2 = await task2; 

Por que eu deveria escolher um sobre o outro?

Edit: Gostaria de adicionar esse tipo de retorno de GetList1Async () e métodos GetList2Async () são diferentes.

questionAnswers(2)

yourAnswerToTheQuestion