The document explicitly says you should alias long namespaced types locally:
Use local aliases for fully-qualified types if doing so improves readability. The name of a local alias should match the last part of the type.
However, except for reference safety I can't imagine why you shouldn't alias namespaces
The problem with an aliased namespace is that the references don't point to the same instances anymore.
my.long.namespaces.myFunc()
// this refers to the same function, but is a different reference
var myLocalNamespace = my.long.namespace;
namespace.myFunc();
// and you can easily introduce bugs which are hard to find
myLocalNamespace.myFunc = "foobar";
myLocalNamespace.myFunc() // throws a type error because myFunc is now a string
This bug is hard to search for.
Aliasing has a lot of benefits though. Each member lookup in JavaScript costs time. So having code that constantly needs to lookup a chain of members is wasted speed. Since the cost of a local var is negligible it is strongly advised using local vars whenever you are referring to long namespaces, function results (like $("something")) and so on. Also, it makes your code much more readable. Consider the following:
var handleNamespace = function() {
my.really.long.namespace.foo = "bar";
my.really.long.namespace.doIt(my.really.long.namespace.foo);
my.really.long.namespace.member = my.really.long.namespace.somethingElse(my.really.long.namespace.addOne(2));
};
As you see this gets confusing rather quickly. Getting rid of repeated code saves processing power and makes your code more readable.
var handleNamespace = function() {
var namespace = my.really.long.namespace,
three = namespace.addOne(2);
namespace.foo = "bar";
namespace.doIt(namespace.foo);
namespace.member = namespace.somethingElse(three);
};