No son lo mismo ..
$_SESSION es un array "superglobal" .. esto significa que el ambito de validez y accesibilidad a ese array es en todo el ambito (scope) del script .. por ende, podemos accedeer a $_SESSION sin problemas (sin definir como global ni tener que pasar como parámetro a una función) ese array sin más.
Con $HTTP_SESSION_VARS no sucede lo mismo .. no es "superglobal" así que si usamos funciones y queremos acceder a ellas hay que definirlas como globales o bien pasarlas a la función por parámetro ...
Sobre el tema de versiones y algunas otras consideraciones puede verlas en el manual oficial de PHP:
http://www.php.net/manual/en/reserved.variables.php
Notese que el "concepto" es igual para otros acceso de variables externas de un script.. sean las que llegan por GET .. POST, etc ...
Un saludo,