#session
использование работает только в веб-контексте, т.е.это помощник для прямого доступа к объекту javax.servlet.http.HttpSession, связанному с текущим запросом.Это четко указано в документации .Таким образом, вы напрямую обращаетесь к объекту Context здесь, а не к переменной, которая определена тимилефом.
$session
- это ярлык для доступа к атрибутам сеанса.Это не объект контекста, но это карта, добавленная к контексту как переменная, которая добавляется тимилефом явно.Вы можете найти соответствующую информацию здесь .