The system would be pretty useless otherwise if you had to report the same image multiple times for each time someone recompressed it / took a screenshot of it / a single bit was changed.
The other likelihood is that they aren't just generating a hash for the same reason FaceID isn't just a hash but actually doing more interesting model-building that they only implemented server-side.
Either way, it's not very great UX. But I can imagine that if you're at a place where you need to preemptively block your nudes from imminently transmitting through Facebook, you probably don't care.
> it's not implemented in Javascript.
They can implement it. Hell half the readers on this blog could implement it..
This kind of thing is now happening a few times per week. Are there any non-eavesdropping explanations for how this is possible?
Short answer, no, they probably aren't listening. But they know enough other information about you that they don't need to.