Why would it be reachable? It might be name-able but that doesn't imply reachable.

You're conflating the two parts of NAT: address translation and inbound filtering. A router can block any inbound traffic coming from WAN, even if the IPv6s on the LAN side are public.

In fact, hole punching for IPv4 shows this distinction. By default inbound traffic is blocked, but as soon as private host has opened up a connection, it is (indirectly) reachable and nameable (via the routers public IP + port).

BTW, static IPv4 NAT with public addresses on both sides exists as well.

Addressable means routable. Otherwise the distinction between a Public and Private address becomes one of firewall rules rather than a meaningful property of the IP Address.

And as you say, hole punching is still “PUBLIC IP” + port. Not an IP and any port you fancy unless the firewall was configured correctly.

Maybe I am wrong, maybe you’re confused, maybe IPv6 is just rubbish. Maybe all 3.