Would you expect the value of a to change after the following snippet? Snippet in question:
var a = 10;
var b = a;
var b = 20;
No, right? So why would you expect reassigning b to also affect a?
After line 1, you have a pointing to a function instance:

After line 2, you have a new variable b, also pointing to the same function instance. So now you have two variables, both pointing to the same instance:

After line 3, you have reassigned b to something else (a new function), but a is still pointing to the original function:

You can do what you want by doing something like this:
var func = function() { alert("a"); };
var a = function() { func(); };
var b = a;
func = function() { alert("b"); };
Now calling a() or b() will alert the string b.