Sí, extraer información de una variable de sesión es más eficiente que consultar una base de datos para obtener esa información. Sin embargo, cargar la información INTO las variables de sesión requieren leer un archivo fuera del sistema de archivos de su servidor y en la RAM, que dependiendo de muchos factores (velocidad del disco, carga de IO, velocidad de la base de datos, etc.) puede ser más lento o más rápido que leer la misma información de una base de datos. Sin información sobre su configuración específica, es difícil saberlo. Una cosa a tener en cuenta, si planea crecer y usar más de un servidor web, deberá escribir algunos controladores de sesión personalizados para almacenar sus sesiones en un servidor central (posiblemente una base de datos), Memcache o un montaje compartido punto donde todos sus servidores web pueden ir a buscar los archivos de sesión.
Al final, poner algo en la sesión y usarlo desde allí puede ser más eficiente que cargarlo desde la base de datos cada vez, pero aún lo está cargando desde algún lugar, y así, el conocimiento de su hardware y su configuración será su mejor guía.