Por que o ASP.NET MVC usaria o estado da sessão?

Recomendado pela equipe do ASP.NET a usar cache em vez de sessão, paramos de usar a sessão de trabalhar com o modelo de formulário da Web nos últimos anos. Normalmente, a sessão está desativada no web.config

<sessionState mode="Off" />

Mas agora, quando estou testando um aplicativo ASP.NET MVC com essa configuração, ele gera um erro na classeSessionStateTempDataProvider&nbsp;dentro da estrutura mvc, ele me pediu para ativar o estado da sessão, eu fiz e funcionou. Observando a fonte que usa a sessão:

// line 20 in SessionStateTempDataProvider.cs
Dictionary<string, object> tempDataDictionary = 
httpContext.Session[TempDataSessionStateKey] as Dictionary<string, object>; 

Então, por que eles usariam a sessão aqui? o que estou perdendo?

==================================================== ======

Editar&nbsp;Desculpe não significou que este post discutisse sobre sessão versus cache, mas, no contexto do ASP.NET MVC, eu estava me perguntando por que a sessão é usada aqui. Nissopublicação no blog&nbsp;Scott Watermasysk também mencionou que desativar a sessão é uma boa prática, por isso estou me perguntando por que tenho que ativá-la para usar o MVC daqui em diante.