We use mnemonics, because we can't remember numbers as well, but to the compiler, addresses are pretty much like names.
Also addresses are not like names. As with names in general, a name can refer to more than one object. (Consider modules, for example.)
I don't agree with this. I think often a function will drift from its name if functionality is added to an aspect of its implementation or because of refactoring.
that's a rosy way to say, names entail a message.
An Address can also be computed, your argument is invalid.