However, I do like the pragmatic nature of NixOS (you're able to easily install non-free packages). GUIX doesn't make this easy at all from what I understand. I appreciate those virtues, but practically speaking, I have to use non-free software on the desktop all the time.
How much cooperation between the two is necessary? If I wanted to install CUDA drivers with Nix would it "just work" (i.e. if it works on NixOS it works on GuixSD) or could GuixSD make problems?
I found a comment from a year ago claiming that the kernel wouldn't load blobs: https://news.ycombinator.com/item?id=14630581
Re: the comment about the Guix kernel and blobs: Guix uses the linux-libre kernel which has blobs removed. BUT you can use a custom kernel on Guix, so you could use a blobby kernel, but you would have to configure it. If you poke around, you can find examples of people doing this, e.g.: https://gist.github.com/TeMPOraL/306bbb7c627ab0d32fa84af8319...
But, in general, the standalone Nix package manager (and the standalone Guix package manager, for that matter) are designed to work as isolated units, not depending as much on the 'host' system, so lots of stuff does 'just work' regardless of whether the host distro is GuixSD or Debian or Void or Arch or whatever.
The fact that they’re using Scheme for so much of it is also pretty cool, as I think this sort of high level systems programming is a great potential use case for showcasing meta programming as well as the unique power of lisps for code-as-data.