Tunneling IPv6 over IPv6

In IPv4 land I can do something like this:

ifconfig tun0 create
ifconfig tun0 a.b.c.d e.f.g.h
ifconfig tun0 alias i.j.k.l e.f.g.h
ifconfig tun0 up

However in IPv6 land I get stuck:
ifconfig tun0 inet6 A:B:C:D::E F:G:H::I prefixlen /128
ifconfig tun0 inet6 alias J:K:L::M F:G:H::I prefixlen /128
ifconfig: ioctl (SIOCAIFADDR): File exists

It certainly is related to reusing the target IP (F:G:H::I), but I don't really understand why it works in IPv4 (and actually works flawlessly), yet in IPv6 it causes an issue.