I suspect the tooling isn’t quite there yet for desktop use cases.
If I were to try to replicate my current desktop in an immutable model, it would involve a lot of manual labour in scripting or checkpointing every time I installed or configured something, to save a few hours of labour in 2 years time when I get a new drive or do a full install.
The case is easier for defined workload servers and dev environments that are regularly spun up fresh.
I guess the assumption is more that for me, a fresh install is often about decluttering as much as anything-- the five Wayland compositors, three music players, and six pseudo-IDEs I tried and didn’t like don’t need to follow me to the next build.
In a conventional install, that just means “don’t check the checkbox in the installer next time”. In a Nix-style system, this is a conscious process of actively deciding to remove things from the stored configuration, no?
I suppose the closest I’ve gotten was recently migrating my setup from a desktop to a new laptop. Mostly copying over some config from my home directory, but even then, I wanted enough different stuff-- removing tools I don’t use on the laptop, adding things like battery monitoring and Wi-Fi control-- that it involved some reconfiguration.