Ah, I think you might be missing the context of the original proposal? I do mean bare unbound identifiers - at lease as they occur in this new syntax. 

# currently works
spam = “eggs”
spam: eggs

# currently a NameError
spam

# proposed to work, currently illegal

@spam
eggs

@spam(“eggs”)
cheese

@spam
eggs: str

But none of this would change the first three examples.