I believe I understand what is happening now, and it is the result of the way guix releases software and not a bug in my configuration. I put all of the packages in my system configuration into a manifest and ran `guix weather` against it, and it said that only 85% of packages have substitutes available. I had assumed that substitutes should be available and either there was something in my configuration that was causing me to download an old version of a package, which had presumably been deleted from the server, or that I was telling it to build some unexpected variant. But thinking about it more, updating a guix system is just pulling down package definitions, which become available before the substitute server finishes building everything. And it has a lot to build. So I think this is just expected, and guix decides to build the software locally instead of just refusing to let me upgrade.
I could probably configure the system to use a commit from a short time ago which still has substitutes available, but I have been meaning to minimize my system anyway since I don't use much beyond a terminal in guix. And this means I will remove most of the packages that take a long time to build, and the remaining long-build packages are things like the kernel which do have substitutes available. Sincerely, Skyler