This is one of the other optimizations done by IPv6. In the case of IPv4, the layer 3 and layer 2 addresses are essentially uncoupled, where as in the case of IPv6, layer 3 address gives us some hint about layer 2 address.
In the case of ARP resolution, an ARP request is broadcast – one of the side effects of it is that all the nodes on the local link are supposed to trap the packet and inspect it to check if it is the intended recipient.
However, with IPv6, the packet is not broadcast, but multicast. That is, there is a standard way to frame an IPv6 destination address given the IPv6 target address for link layer resolution – i.e. node A knows about node B’s IPv6 address, but not its link layer address. In this case, the packet would be sent to ff02::1:ff <24-bit suffix of target IPv6 address>. All the nodes which have the same 24-bit suffix of the target IPv6 address (essentially mostly only one node) will listen to the aforementioned multicast address and then process it.
From a layer 2 perspective, there is no bandwidth savings – because the packet would still be broadcast on VLAN, however from a layer 3 perspective – i.e. node’s perspective – not all nodes inspect the packet – the packet would get dropped early on all the nodes except the intended listener. Needless to say, even routers need to listen on that.
In essence, there is no broadcast packet in this case, so even routers are saved from examining the packet by trapping them to ARP daemon. Since the packets cannot be sent, anyways, on other links, routers need not do anything here.
One quick point to be taken home is that – nodes are not supposed to assume that the MAC is embedded in the last 64 bits of IPv6 address with EUI 64 format. If they assume that, there is no need to fire a ND request at all in the first place. Data links other than Ethernet can also be used and one can never be sure.