People may disagree on specifics, but you're definitely right that being able to separate the function signature from its definition would be very helpful in complex cases.
Why? You can easily find parameter names in the signature if you just put them on separate lines. For me there's very little reason of putting them all together on separate line after the signature. And then when you look for a type of a parameter you know the name of, it gets difficult.