The specification for [NoInterfaceObject] states that the attribute "should not be used in specifications unless required to specify the behavior of legacy APIs".
Is there something about the WebGL extensions that are somehow unspecifiable and legacy? By way of example, here is the webidl for AngleInstancedArrays