They are both saying the same thing, in a bit of a different way.
I think you're assuming the top statement is saying the function returns a reference.
Read the statements like this, with the omitted portion:
p 464
When the browser evaluates a function declaration, it creates a
function as well as a variable with the same name as the function, and
stores the function reference in the variable.
p 465
A function declaration doesn't return a reference to a function;
rather it creates a variable with the name of the function and assigns
the new function to it.
Now, you can add the omitted portion of it to either statement. You'll see that they are saying the same thing, but the second one is just clarifying that the function declaration does not return a reference to a function. The first statement does not say it does return something, so this is not contradictory.
The first statement says it stores the function reference in the variable created with the same name as the function. Do not assume this means the function declaration returns something.
It seems there is some confusion between declaration and invocation. Here's a very simple definition of both.
Declaration
The act of defining what something is, such as a variable, object, method, or function. In JavaScript, declaring a function does not return anything.
function func() {
return "returned";
}
You can also do this
var funk = function func() {
return "returned";
}
This doesn't mean the declaration returns something, however. It simply means that funk is now pointing to the reference to the function. Later you can invoke this function by using funk(), similar to below.
Invocation
The act of invoking, or running, a function or method.
func();
The above returns "returned", as defined in the declaration. In JavaScript, the declaration of the function itself doesn't return anything.