イベントハンドラの扱いがよくわからない

b1とb2のclick動作の違いがどこから来るのか教えてください。

<html>
<head><title>Test of Button Event</title></head>
<body>
<form name=f>
<!-- clicking b1 shows 1 and 3 --> 
<input type=button name=b1 value="b1" language=vbscript onclick="alert 0">
<!-- clicking b2 shows 2 and 4 --> 
<input type=button name=b2 value="b2" language=vbscript onclick="alert 0">
</form>
<script for=b1 event=onClick language=vbscript>alert "a"</script>
<script for=b1 event=onClick language=vbscript>alert 1</script>
<script language=vbscript>
Sub fn()
  alert 2
End Sub
Sub b1_OnClick()
  alert 3
End Sub
Set document.f.b1.onClick=GetRef("fn") 'this is not affected
Sub b2_OnClick()
  alert 4
End Sub
Set document.f.b2.onClick=GetRef("fn")
</script>
</body>
</html>