Js-ipfs not handling duplicate images

I was playing around with the browser mfs example and am having trouble understanding js-ipfs’s image duplication and lack thereof.

I uploaded image A and named it a.png and stat told me: “cumulativeSize: 262274”.
Then, I uploaded the same image and named it a copy.png, and stat told me: “cumulativeSize: 524551”.
Question 1: shouldn’t the image data be completely the same, and thus not be stored twice by IPFS?

Next, I used ipfs.files.cp to copy a.png to a2.png, and stat told me: “cumulativeSize: 524662”, which is what I’d expect.
However, if I upload image A again and name it a2.png, cumulativeSize goes up to 786822 even though, ostensibly, nothing has changed.
Even stranger, if I ipfs.files.mv a2.png to a3.png, cumulativeSize goes back down to 524662.

What is going on here? Clearly there’s something I’m missing…