The weird part is that we seem to be in agreement, as I outlined early on. I completely agree that having IPv6 available to those who know what they're doing is a good thing.
No, v6 needs to be ubiquitous. Having it only in the hands of those who understand enough to want it means that it won't be widely enabled, and thus becomes useless - eg if you travel somewhere you will constantly find yourself stuck on legacy links and thus will still be stuck with the cost/headaches of having to make your own systems reachable from such legacy networks.
So many IPv6 related bugs. Good lord, so many IPv6 related bugs...
Again all the more reason for more widespread use, so the bugs get discovered and pressure is applied to have them fixed.
You put fully discoverable not behind NAT IPv6 in hands of average people? Their fridge will be sending spam mail to boomers in US within a month or two. It's really, really not good.
Only thats already the case.
A lot of mobile networks have fully open v6, i can name several i have personal experience with and this has not resulted in compromised devices.
I'm aware of several ISPs that ship routers which are fully open by default, and 99% of users won't ever change those settings or even know how. This has not resulted in an increase of infected machines as modern client devices are set up to handle this, and random embedded devices are not practical to discover in the vast address space v6 provides.
I've seen many devices exploited via XSRF (see previous post), but this depends on a predictable address which nat provides, and is not practical with globally routable addressing.
That's not to say things couldn't be improved, but a default blanket "deny all inbound, allow all outbound" is stupid. This breaks p2p and is useless against today's threat profiles.
We need ISPs following the standards for v6 implementation (ie delegating a /56 prefix to users), and consumer equipment which creates separate isolated networks for different purposes.
For instance if i receive 2001:db8:100:100::/56 i would set up:
2001:db8:100:101::/64 - personal devices like laptops and phones
2001:db8:100:102::/64 - work from home (the IT dept has access to my work laptop, so i need to keep it separate from my personal things)
2001:db8:100:103::/64 - guests who visit my home (cell service sucks where i live so people are cut off if i dont give them guest wifi)
2001:db8:100:104::/64 - untrusted iot devices where both inbound and outbound is tightly controlled and restricted to specific addresses
2001:db8:100:105::/64 - kids, etc
2001:db8:100:106::/64 - voip phones where traffic is only allowed to/from the external voip provider (sip doesnt play well with nat, and a given provider can have a single v6 block vs fragmented legacy blocks so the acl is much cleaner)
2001:db8:100:107::/64 - games consoles (the xbox does p2p over v6 for certain multiplayer games)
2001:db8:100:108::/64 - cctv (i use poe cameras, so there is a risk of a physical threat actor disconnecting the cable from an external camera and trying to connect to it, so this needs to be isolated in its own vlan)
That way if anything suspicious happens and gets reported, i know immediately which vlan/ssid it came from, if you're stuck with nat then any external report is going to have the nat gateway address and while the capability for multiple ssids/vlans is realistic and already supported by some consumer hardware, the ability to log nat traffic and trace a specific activity that happened a few days earlier back to its internal address is simply not practicel with consumer equipment and would cost a significant amount to implement as you'd need to add storage to hold the logs.
In fact aside from v6, the ability to have multiple vlans/ssids is important for other reasons, such as having to operate weaker wifi security for legacy devices - eg various devices don't support wpa3 yet, and nintendo kept wep alive for many years because some of their handheld consoles didn't support anything else. What's needed is for consumer routers to support and encourage this, and make it easy to assign different access policies to different networks with a set of default profiles available - eg allow all, allow nothing, only allow one-way access from one of the other networks.