the variables are initialized with the expressions following the rules for assignments
in the variable declaration section, and
The blank identifier provides a way to ignore right-hand side values in an assignment
in the assignment section.
From this point of view, the variable declarations should probably work, though I'd say the spec is actually not clear on this.
Since the declarations work outside the function, and assignments (i.e. without "var") work inside the function, I understand that these kind of declarations are useless. This is just some weird interesting behaviors.