It's not using a variable to declare a function, it's using a variable to store a function, maybe only temporarily. The function happens to also be declared on the same line.
Would you also object to
var functions = { a: function() {}, b: function() {} }
or
var functions = [ function() {}, function() {} ]
?
in those cases we're creating a storage structure and loading it with functions - a single variable is just another case of the same.
What about
var log = console.log || function(msg) { };
?
The function foo() {} declaration syntax in JavaScript is a syntactic hack that uses function hoisting to allow functions to be used 'before' they are declared. All it does is turn into a var foo = function foo() {} at the top of the current scope.
But because of var scope, variables can also be used before they're declared, so often you don't need it anyway:
var a = function() { return b(); };
var b = function() {};
a();
I suspect people who strongly prefer var foo = function() {} over function foo() {} are people who have internalized the idea of functions as data. I'd hesitate to say 'functional programmers', but perhaps 'functional JavaScripters' is valid.
As for "There are also very good reasons to declare a function within the scope of another too. But they are few and far between" - the benefits of closure over parent function scope are incredibly powerful - I don't think they are few and far between at all. I tend to declare pretty much all my functions inside a function using the module pattern:
(function() {
var x = 0;
var f = function() { return x++; };
window.makeObj = function() { return { id: f() }; }
})();