It's so much funnier though, that the solution is to just keep throwing in more and more copies of the images.
I feel kinda bad for the poor developer responsible for keeping all of those copies up to date. Very much 'i pass butter' kind of programming.
This could just be the build tool looking at dependencies and including them multiple times in seperate frameworks. No different to how in big Java apps you often will see duplicate code amongst shaded JARs.
Hashing resources is like an intern problem, technically at least. Facebook must have some crazy politics to incur the image dedupe problem.
As far as objective c binaries go, all I can think of are static variables for coroutines, but I'm probably forgetting something. Java doesn't dedupe, but it's not that hard. C has to worry about flag state, so I kind of understand why they don't dedupe binaries.
I'm sure someone would get fired if one subsystem showed the wrong image, but I'd agree it's likely no one person has that in their job description.
Otoh, it's only a couple hundred wasted terabytes, and FB doesn't pay for them, so who cares?