Elsevier could easily make this completely non-trivial. For a very silly example, imagine how this would work if each user got a PDF using a different font. How do you automatically normalize the difference between Comic Sans and Times New Roman? Sure, it's trivial to write a tool that understands what "fonts" are and does this (especially for PDF), but you can't do it with a simple binary tool.
And of course Elsevier can do something entirely more complex.
Bad bad bad bad, again bad idea. That changes the structure and the meaning of the content. A single word replacement can change the context of the entire sentence which can change the content of the entire paper. Changing it can create unintended effects which can make Elsevier to thrash their reputation and universities will move on to different scientific/academic journals site.
If Elsevier tries this method with peer-reviewed papers, then it have to go through the reviews again to ensure that the original and the revision have the equivalent expression which is difficult to do. Authors chose those words and structure to convey their expression in those papers. They chose it for a reason and Elsevier is not going to risk their reputation to change the authors papers without affecting the content of the paper.
While you can apparently just strip it from the metadata properly like suggested on twitter, maybe a "low level" approach like comparing the files on a binary level and setting any bytes that differ to 0 would be more robust. It would still work if they move the hash out of the meta data into the document itself. Only downside is that this requires the hash to be fixed size.
Such a tool would need a lot of smarts to work reliably enough. At this point, I feel like a metadata stripper that understands the various watermarking methods may be easier to write.
Why can't the algorithm just keep whatever is common between the two files?
Or just take the shorter side of the diff and zero it out?
I recommend having a tool that works on a single source, then verify that it produces the same output from multiple sources.
Also when downloading multiple times, try to do that from different public IPs and accounts.