Забей. В общем твой вариант возможен, просто они поленились делать ещё одну функцию в обёртке виндоу.
В фф вообще заморочек много, потому я и тупанул чутка, а имел я виду банально:
a={
eval: function(code){return eval( code )},
toString : function(){return '[object A]'}
}
a.eval('alert(this)')
window.eval('alert(this)')
Но тут не тот случай.