Здесь все становится интересным. Вернее - полностью орехи. Здесь мы видим опасность иметь дело с двумя различными объектами - увеличение одного из них, очевидно, не изменяет другого; Это может быть довольно неприятным, если вы решили использовать, скажем, механизм кэширования и сохранить что-то в свойстве f, а затем попытались получить доступ к нему как свойству g, считая, что это тот же объект, с которым вы работаете.
Ответ 2
Если вы заинтересованы в исправлении проблемы, это будет работать.
( function(){
var f = function foo(){};
window.foo = f;
alert( window.foo === f ); // false
}() );