Что вы имеете в виду, что вы хотели бы избежать "наличия данных контекста вызова в сеансе"?
HttpContext отличается от сеанса тем, что он длится только на время запроса. Сеанс, как следует из его названия, длится весь сеанс (который может включать несколько запросов).
Это может быть чистое решение для использования HttpContext, поскольку это то, для чего он существует.
С уважением,
David
Обновление: должно было упомянуть, что вы можете получить доступ к текущему контексту через HttpContext.Current.Items.