If you need more control over your LAN network I would choose a router that supports multiple LAN networks.
This includes the venerable Draytek as well as appliance or DIY approaches such as OpenWRT or pfSense or even Mikrotik, depending on how involved you want to get.
In that scenario you will have enough flexibility to run a default dual-stack LAN and a secondary IPv4-only LAN on which to drop devices which have incomplete IPv6 support.
The devices that can have trouble are ones that try to implement it partially and make a hash of it.
Specifically this means devices that configure/register an address for their interface but then fail to listen on both v4 and v6 for all relevant services or sharing.
In other words things that advertise themselves to the LAN but whose services aren't actually accepting connections for IPv6.
Whereas devices that have supported it for years and devices that have zero implementation will both have no problems being on a dual stack network.
For transparency I am on Zen with the supplied Fritz!box and using their DV service, so VoIP sessions terminate on the router anyway on the public-facing interface. The call internally is distributed over the built-in DECT base so the handset is not even IP aware.
But I could have an app or wired handset talk to the Fritz!box as a local handset/extension if I wished.
And I believe there is documentation if I wished to have an app register with Zen directly so that it could work outside the home (or I could use VPN to connect back the Fritz!box anyway).
On my LAN I have set it up to always provide the ULA network (fd… /64 prefix) which can be used for stable addressing whose scope remains inside the LAN.
Zen's delegated /48 is also static so if you want to make use of the global addressing you can do.
Similar applies if you use IDNet or AAISP, I cannot speak for whether Sky or BT do this or try to make static delegations a chargeable / business class service.
The Fritz!box has a dual stack firewall with default deny on inbound (unsolicited) as others have commented,
and the section where you'd configure port forwarding for IPv4 also has settings for opening the corresponding port (no NAT) to the global IPv6 address of the same device.
It's not a seperate part of the UI to hunt down, You just choose whether you want to allow v4, v6 or both when defining external access to a service.
I use this to allow incoming Wireguard connections to reach a couple of targets on different ports listening inside the LAN and can use the global v6 address of the LAN device or the outer v4 NATTed address of the router if coming in from a v4-only network when away.
prlzx on Zen: FTTC (VDSL) at ~40Mbps / 10Mbps
with IP4/6 (no v6? - not true Internet)
Edited by prlzx (Sun 11-Feb-24 00:10:03)