In theory you can use the special nixStatic build of `nix` and it should just work with unprivileged user namespaces but in my experiences with Silverblue you just get mysterious errors until you get a bind mountpoint going.
Ultimately Silverblue is trying to be an “immutable” system without the need to coordinate packages and/or software. And such an approach is highly appealing for enterprise support, but the end result is somewhat of a Frankenstein system. Of course Nix is not without its warts, I can’t stand its language and documentation is terrible.
Overall I find Guix to be my favorite of the bunch. It’s legitimately a wonderful tool to develop with, I agree with the emphasis of reproducibility and bootstrapping, Guile is a wonderful language for configs/scripts, and it comes with a great manual. Even still, I couldn’t recommend GuixSD due to the lack of systemd and the hardline approach to free software (libre Linux).