there are at least two relevant parameters, density (call it D) and size (call it S).
D is expressed in Hz, it is the rate of new grain triggers.
S is expressed in seconds, it is the length of each grain.
neither are randomized (i’d consider randomizing the trigger impulse train!), so the number of overlapping grains is always ceil(D*S).
so if e.g. size is 1 and density is 8 then yes, you should allow an extra linear gain of 8.0 = 18db of headroom. (maybe that counts as “way down” for you, maybe not, i dunno.)
this seems like a case where Limiter.ar, SoftClip.ar or similar would help at the end of the chain in the synthdef. and/or, the synth itself could attenuate by (ceil(S*D)), though this may not always be desirable.
i don’t believe we explicitly clip the engine output, and neither does the JACK transport, but i could be wrong about the latter especially.