I now understand the problem more clearly. The problem arises when a package in module A inherits from a package in module B, if there is a cycle in the use-module graph involving A and B.
In this case, (gnu packages base) contains packages that inherit gcc-4.8 from (gnu packages gcc). Commit c5d837684359e3629c4ac96297a25d1165edcb39 creates cycles between those two modules. This fact is not immediately obvious because it only adds an edge from (gnu packages texinfo) -> (gnu packages gettext). Here's one such cycle, with ==> being the newly added edge: gcc -> texinfo ==> gettext -> xml -> gnome -> glib -> base -> gcc When there exists a cycle involving two modules, the order in which they are loaded cannot be assured, because of the way module loading is done in Guile. In the short term, it might help to move (gnu packages gcc) into (gnu packages base), and more generally to avoid inheriting from imported packages, at least among modules that are likely to be involved in cycles, such as core modules. Mark