My biggest issue here is this claim: “Determinate Nix 3.0 isn’t a fork of Nix—it’s a downstream distribution”.
Determinate Nix makes different choices about what features to include, and that is what makes it different to cppnix. That is not a downstream distribution. “It’s a downstream distribution” means minimal changes to get the same result, like what nixpkgs does for most packages.
I assume this happened because Determinate Systems is frustrated by the slow pace of stabilization of various features. And that’s okay! I’m frustrated too. People can disagree!* Forking the project is the Thing To Do when you disagree strongly enough, and always having that option is part of why open-source is great.
But forking has its downsides; There’s a duplication of effort. The fork has to pick a balance between maintaining compatibility with upstream and flexibility. There’s uncertainty similar to if it was a brand new project: Will it keep being maintained? Is it stable/secure/etc?
It feels like here Determinate Systems is trying to have its cake and eat it too. It is a fork (they can make different decisions about what features to include/stabilize) but also it isn’t a fork (don’t worry, this is exactly the nix you know and love). You can only pick one!
*although it’s awkward because of the people overlap between the nix team and Determine Systems, as others have mentioned