Sum an n×n block on a CMOS sensor. Signal goes up by n². Shot noise, being the square root of the signal, goes up by n. Read noise, added once per pixel read, also goes up by n. So, for a uniform patch of signal:
SNR = n²S / √(n²S + n²R²) = n × S/√(S + R²)
Exactly n, whether shot-noise-limited or read-noise-limited. The offset scales as n² too, which is why a binned frame's pedestal is four or sixteen times the unbinned one and must be subtracted before any arithmetic.
A punctum is not a uniform patch, and it gains less. At 40× / 1.15 NA a centered punctum puts 18% of its light in one 115 nm pixel and 55% in a 2×2 block — three times the signal against four times the background — so its peak-pixel SNR rises 1.70×, not 2×. The simulation on this page shows exactly that.
Where the CCD and CMOS versions part company is the deep read-noise corner, which is precisely where people reach for binning. At 50 electrons per pixel with 0.7 electrons of read noise, charge binning gives 2.01× and digital gives 2.00×, indistinguishable. At 2 electrons per pixel with 1.6 electrons of read noise, charge binning gives 2.63× and digital still gives 2.00×.
Combine an n by n block of equally bright pixels on a modern sensor and the signal-to-noise improves by exactly n. Two by two doubles it.
A single spot is not equally bright across the block, so it gains less. A spot that fits mostly in one pixel gets about 1.7 times better at two by two, not twice, because the extra pixels add more background than signal.
The pedestal grows too, four or sixteen times, and must be subtracted before you do anything else. The old CCD version only pulls ahead when the signal is very weak and the read noise high.