The full 128 bits of source and destination addresses are passed end-to-end, my comment is specifically focused on routing.
As far as privacy is concerned, v6 allows a much broader scope for protection than v4 and NAT, as the IA portion (second 64 bits) can be changed at will by that endpoint. EUI-64 is still common with basic v6 stacks, but SLAAC will rotate every ~24 hours.
EDIT: I’d conflated the original SLAAC specification with the SLAAC privacy extensions RFC 4941, which at almost 2 decades old itself could be argued to be the canonical reference.
One of my favourite features of v6 is it explicitly permits, and caters for, multiple addresses on an interface. This means you could theoretically have a unique address per application, within multiple prefixes if they’re available.
I personally have all my internal services accessible only on addresses under ULA prefixes, which intrinsically prevents them from being accessed outside of my network, no firewall required. Using WireGuard permits remote access when needed.