I see. I do believe you're right about the fact that it does not make code cleaner there.

I think the reason they decided to enforce this is because what it should do is not standardized. Right now, you don't really know if it's going to keep working (though I believe the v8 team will be hard pressed to change this after so long).

They might decide that a function is only available below its declaration at some point.