Yes. Nix packages all have their own dependency trees; only if you happen to have the same dependency version between two different packages they’ll end up in the same place and thereby be de-duplicated.
If you use unstable and stable, any unstable packages will have a full second copy of everything from glibc up. This can be a lot of data, especially for GUI packages like that.
You also have less breakage on stable, by definition, since only non-breaking changes should be merged into stable (with the occasional very specific exception). Fewer updates also means less chance of build failures causing hydra to skip a package.
That said, those things aren’t really that severe. Disk space is relatively cheap, breakage actually having user-visible effects is rare, and it’s not particularly common for builds to fail (and even if they do, chromium is kind of a worst case, most builds you would barely even notice).
The downside of stable is that you won’t always have the latest and greatest, sometimes your packages will end up 6 months “out of date” (though security updates are backported).
As a heads-up, this is a bit of an anti-pattern. Prefer nixpkgs.legacyPackages.${system} where possible.
To allowUnfree for your main nixpkgs, use the NixOS option instead. Or better yet, use the allowUnfreePredicate so you know when you’re about to install something unfree.
For any additional nixpkges, or if you use unfree packages outside your NixOS config, you can use this crutch until flakes are extended in some way to allow unfree packages properly: GitHub - numtide/nixpkgs-unfree: nixpkgs with the unfree bits enabled
I forget the details, but iirc this will cut evaluation times a bit with thr eval cache. Not terribly important for leaf flakes like yours probably is, but it’s good to stick to best practices so you’re already doing it right where they are important.
Yep, that looks good, though I’d still suggest changing operation to boot. That way your running system won’t randomly have different graphics libraries and your GUI applications stop working.
If you fully reboot at least daily you otherwise won’t notice a difference between switch and boot.
From what you’ve shown your config is probably fine, but I still can’t judge without seeing the exact trace from your inputs to your applications that use chromium and whatnot. But given hydra hiccuped, it’ll probably be that and not your config.