I already cache md5 and some other hashes for local files, so this wouldn't actually be too hard.
The system:hash predicate is something I mostly use for debug and only works for sha256, but I can give it a dropdown to select which hash type you want. You could put the md5 in there, and if you get a file back, you have it! That's a bit of a clunky workflow if you want to test a lot of files, but I think it would be ok until we have something better in place.
I am eventually planning to have the client serve a lot of queries, including "here's a hash, what's the file status?" through its local http server so people with programming ability can write scripts to automate imports and tagging and so on. If you wanted, you could plug into this advanced system to do what you want quicker.
Anyway, for now, I'll make a note to extend the predicate, probably next week.
Just as an aside, in case you didn't know: Hydrus uses its sha256 to compare file contents just like you want to do, so that if you already have a file and try to import it again from another location, it will recognise that it already has the file. Feel free to import the same file several times to hydrus–it won't cause dupes (it usually says 'already in db' when this occurs). Furthermore, if you run a 4chan/8chan thread watcher, the md5 those sites provide in their API is automatically used to skip files you already have.