I mailed mr Stroustrup himself, and got this reply:
-----
Consistency of the grammar, redundancy to allow checking, readability.
You could equivalently ask "why restate the type of a function when we have
already seen a declaration?:
int f(int a, char c);
//...
f { /* ... */ } // why not?
-----
/Per
if (typos) cout << "My fingers are faster than my brain. Sorry for the typos.";