Allow redefining functions names of outer scope? ERROR: UndefVarError: f not defined

that is exactly what I am doing right here - trying to understand why it is needed.

But apparently that is not easy to understand, at least no one could help so far (of course some answers already pointed out that julia currently is designed this way, but the more important question to me is to understand why)