Sell me on Guix / NixOS. I'm a current Arch Linux nerd and I want to become even more insufferable expand my horizons.
So you know how dependency hell results from having many versions of the same software at different places in the dependency graph? What if instead of having to walk on eggshells around our dependency graph, we just put in the work to make it so different versions could coexist? So instead of having "/usr/lib/libc.so" or whatever you've got "/gnu/store/eqondrwneomgspaghettiqoedrnwp-glibc-2.41/lib/libc.so". This path (or more accurately, the path to whichever libc the package specifies as an input) gets hardcoded into programs at build-time via the RUNPATH. This general philosophy, of embedding references to runtime dependencies at build-time, is used wherever possible. It's conceptually like static linking, but libraries still have only one copy on the filesystem.
The advantage of this is that, basically, you can have pretty much any software you want without any conflicts or duplicate copies of dependencies. For example, different programs can be built with glibc or musl, and both be usable simultaneously.
The disadvantage of this is that it is very different from what most packages are used to, and packaging often involves patching and tardwrangling to do things like not use hardcoded paths such as /bin, /usr/bin, /usr/lib, etc. For some packages this is a lot more streamlined than others, so you may get a very different experience trying to package something using, for example, autotools (very easy, almost always works with no particular effort) vs something using something custom.
In general, guix has a strong focus on Doing The Right Thing™, even where it's extra work. This combined with the packaging model means that if it works in guix, it will probably work for the foreseeable future. This allows for features people normally turn to something like Docker for, but Done Right™.
This plus many other features can make for a powerful, very usable experience... if you stay on the beaten path. If you don't, you will quickly find that Doing The Right Thing™ is a lot of work, and appreciate the developers a lot more. If you decide to power through and try packaging off-the-beaten-path stuff yourself, you will gain a newfound burning hatred of modern developers and anything to do with Python or Rust or really most language-specific package managers. The widespread adoption of Rust and its consequences have been a disaster for guix.
And if you decide to wander off the beaten path even further and make modifications deep in the dependency graph, you will find yourself having to build almost everything locally instead of using binary substitutes. At this point you will discover that Rust is written in Rust, and there are around 20 versions between the most-recently-bootstrappable version and the current version, and you get to wait for all of them to build, back to back.
There are a bunch more details and features, but I think that sums up the general feel. If you're staying on the beaten path, it's great, and if you're not, it still provides very useful capabilities for that, it will just be more painful. If you want to get an idea of the kind of things that guix has been working toward, it might be useful to browse
their blog. Just ignore the one where they try to cancel Stallman, the head honchos literally just woke up one day and posted "hey we're going to abuse the guix blog to get this on planetlibre" to the mailing list. It's not all trannies, but the normal people mostly just look straight ahead and try to stay professional.