From: Craig Finseth [snark17(_at_)gmail(_dot_)com]
Actually, it's globally *unique*, because it contains the MAC address.
The problem is that it's not *routable*, even within the context of a
single host. And unless you give an application on the host guidance,
it depends on host-context routing to get its output packets to the
correct wire. It's hard to remain aware that host-context routing is
important, because it's almost always work.
Well, it's globally unique to a host, not to an interface: the host
(in general) uses the same link-local address on all interfaces.
Thus, you can't tell from the address which interface it refers to.
But remember we're talking about the address given to "ping" -- it's
not the address of *this* host, but the address of some host that is
on some network on which this host has an interface. So the fact that
this host uses the same link-local address on all interfaces, while
true, is not important. What's important is that given the link-local
address of *some other host*, there is no algorithmic way to determine
which of this host's interfaces is needed to access it.
In regard to URIs:
People have spoken about the annoyance of using "%" to introduce the
zone identifier, and the fact that "%" is special in URIs and would
need escaping, etc. But (1) it's unlikely anyone will write URIs with
zone identifiers, since they'd only be usable on a single host, and
(2) the syntax of RFC 3986 ("Uniform Resource Identifier (URI):
Generic Syntax") does not provide for specifying zone identifers on
IPv6 addresses. Indeed, it says "This syntax does not support IPv6
scoped addressing zone identifiers."