Putting it server side is categorically worse. Putting it in the client SDK for iCloud (architecturally speaking) rather than on cloud storage or in the OS is clearly the better correct technical choice, tying surveillance’s hands in a way server side or OS would not.
Most every client SDK routinely checks content before upload, it’s a best practice. Careful examination suggests this was engineered better than that practice.
(Note: even tech trade posts such as LWN, Stratechery, or Daring Fireball trying to write well about this need to sit down a minute and have how it actually works walked through for them, as do many in this community.)
FWIW, I agree with much of the rest of your post except the rationale for low reporting counts.