But only where the semantics are well defined. I can think of several different possible semantics for talking the address of arbitrary things.
The counter-argument is that it can used when the semantics need *not* be well-defined, in other words, where you're saying you don't care. IMHO it's best to make things like this explicit. That way there's no disagreement over which language defined semantics we should be using. What about case like taking an ADDR_EXPR of a COMPONENT_REF where the field is a bitfield? Trying to over-specify things can get quite complex as well.