Bullets= is indeed unused. The Bright brothers are more complex (and stupid). I looked into this part a while ago when Marshall asked me to.

A Combat Light flash is generated by a function that is told how much damage was dealt (before any verses or other stuff), the Warhead to use, which shades to disable (same as CLDisablexx most of the time), and a bool to force a flash even without the warhead's approval. (Is Department Of Redundancy Department hiring?)

When a weapon is fired, it creates a Bullet (projectile). It is told, among other things, the Warhead to use on impact, the maximum Speed , and "Brightness" (in most cases that is Weapon->Bright).

When a bullet impacts, if it was given a "Brightness" of true, it calls on the flash maker function. It gives that function the right damage, the right warhead, the right CL flags, but tells it to force a flash. Hence, Warhead->Bright is ignored in this case.

When a bullet airbursts, it spawns child projectiles. But those projectiles are always told "Speed = 50, Brightness = 0". IOW, airburst weapons never get flashes even when the INI code tells them to.
Cluster weapons receive the correct settings though.

Projectiles are also created without firing a weapon:
NukeMaker=yes spawns a Bullet which takes its stats from [NukePayload], but "Brightness = 1".