¿Por qué ASP.NET MVC usaría el estado de sesión?

Recomendado por el equipo de ASP.NET para usar caché en lugar de sesión, dejamos de usar sesión para trabajar con el modelo WebForm en los últimos años. Así que normalmente tenemos la sesión apagada en la web.config

<sessionState mode="Off" />

Pero ahora, cuando estoy probando una aplicación ASP.NET MVC con esta configuración, arroja un error en claseSessionStateTempDataProvider dentro del marco de mvc, me pidió que activara el estado de la sesión, lo hice y funcionó. Mirando la fuente usa sesión:

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

Entonces, ¿por qué usarían sesión aquí? ¿Qué me estoy perdiendo?

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

Editar Lo siento no significaba que esta publicación debatiera sobre sesión versus caché, sino que en el contexto del ASP.NET MVC, me preguntaba por qué se usa la sesión aquí. En estoentrada en el blog Scott Watermasysk también mencionó que apagar la sesión es una buena práctica, así que me pregunto por qué tengo que encenderlo para usar MVC de aquí en adelante.

Respuestas a la pregunta(4)

Su respuesta a la pregunta