Codewise, unless you do a bad job and fail the "in a workmanlike manner" criteria, using one big wirenut or 2-3 smaller ones and a bunch of pigtails is the same. Pigtails within a box (as required if you want to spread out a connection to 2 or 3 wirenuts rather than one) are "free" for wire count / box fill purposes, though you can definitely make yourself miserable with how tight a box is that's just over minimum size by adding too many, or by mismanaging the wire paths into one big one.
If the GFCI has screw-and-clamp terminals that take two wires each, take advantage of that. That will cut the "wires per nut" by one.
First off, if I read your description correctly, the incoming hot and neutral just go straight to the Line terminals of the GFCI, no nuts or other junctions involved.
All the junctioning should be happening off the Load terminals, as you say the GFCI feeds it all. So the incoming cable does not see any junctions.
So, the GFCI Load terminals either have a pigtail that feeds outlets and switch, or a pigtail and one of the outlet neutrals if they are two-wire screw-and-clamp style. For the Load hots, all those have to feed is unswitched outlet and switch, so two-wire screw-and-clamp eliminates a wirenut completely on that side.
You have 6 wires, 2 devices (that count as 2 each), and 3 grounds (that count as 1) for wire count purposes. So, 11 is the magic number, and 24.75 cubic inches is your minimum box size. Not that I recommend skating anywhere near minimum box size if you don't absolutely have to. But in this case you have a box in place, so dealing with it being tight-but-legal is probably easier than upsizing it to comfortable-but-also-quite-generously-legal.
As noted in comments, a raised mud ring does add to the box's cubic inch count. Steel boxes are "standard" and not marked, (you just look up the number for the size of box) but raised covers and mud rings are marked with the cubic inches they add to the box they are attached to.