Por que o WebMethod pode acessar o estado da sessão sem EnableSessionState?

Eu tenho um método em uma página marcada como[WebMethod] que usa algum estado de sessão como parte de sua operação. Depois que eu escrevi este código, de repente tive um flash de memória que você precisa usarEnableSessionState quando você usa o estado da sessão em um[WebMethod] (por exemplo, veja aqui:http://msdn.microsoft.com/pt-br/library/byxd99hx.aspx). Mas parece estar funcionando bem. Por quê?

Exemplo de código por trás:

protected void Page_Load(object sender, EventArgs args) {
    this.Session["variable"] = "hey there";
}
[System.Web.Services.WebMethod]
public static string GetSessionVariable() {
    return (string)HttpContext.Current.Session["variable"];
}

Exemplo de corpo html:

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function getSession() {
        $.ajax({
            type: 'POST',
            url: 'Default.aspx/GetSessionVariable',
            data: '{ }',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (msg) {
                document.getElementById("showSessionVariable").innerHTML = msg.d;
            }
        });
        return false;
    }
</script>
<form id="form1" runat="server">
    <div id="showSessionVariable"></div>
    <button onclick='return getSession()'>Get Session Variable</button>
</form>

questionAnswers(2)

yourAnswerToTheQuestion