ちょっと脱線だが、
>>4
IE のややこしいルールとの互換性による(だから『超特殊な条件下』と書いた)。
http://msdn2.microsoft.com/en-us/library/ms533023.aspx#Event_Handler_Scopin
<form action="#">
<p><input name="test1"></p>
<p>
<!-- IE:OK, Fx:OK, Op:OK, Sa:OK -->
<input type="button" value="BUTTON" onclick="alert (test1); ">
<!-- IE:OK, Fx:OK, Op:NG, Sa:NG -->
<input type="button" value="BUTTON" onclick="alert (document.test1); ">
</p>
</form><form action="#">
<p><input name="test1"></p>
</form>
<p>
<!-- IE:NG, Fx:NG, Op:NG, Sa:NG -->
<input type="button" value="BUTTON" onclick="alert (test1); ">
<!-- IE:NG, Fx:NG, Op:NG, Sa:NG -->
<input type="button" value="BUTTON" onclick="alert (document.test1); ">
</p>
IE only:<script type="text/javascript" for="button" event="click()">
alert (test1); // [object]
alert (document.test1); // undefined
</script>
<form action="#">
<p><input name="test1"></p>
<p><input type="button" value="BUTTON" id="button"></p>
</form>
<p><input type="button" value="BUTTON" id="button"></p>
<form action="#">
<p><input name="test1"></p>
<script type="text/javascript" for="button" event="click()">
alert (test1); // Error
alert (document.test1); // undefined
</script>
</form>
こんなルールを覚えるくらいなら、非省略形の方がずっとマシだと思う。