Currently OnJSBinding handler executed twice per page, it happens 'cause it executed from didClearWindowObject. As i understood that didClearWindowObject used to prepare window object and clear window object when page is unloaded, or something else. In fact it executed in this order:
OnJSBinding
OnLoadStart
OnJSBinding
...look as html parser works...
OnLoadEnd
but second page load (navigating by url, etc...) have little other order:
OnLoadStart
OnJSBinding
OnJSBinding
...look as html parser works...
OnLoadEnd
there is not too big problem, 'cause we have not many exported objects, but in any way we create two instances of all objects, wrappers, wrappers per each function, etc...