Exactly!
At the moment I’m not very conversant with the rclone code. But do you mean that you are using a specific library for each back-end (storage provider)? And that each library has its own hashing function, that you have no source code of? If that is the case, it gets harder… I don’t have a complete solution for this either. Maybe somebody else know a better way to do this? But just throwing out some quick thoughts. Could it be possible to see how much data that has been read by the hashing function? Like overloading/replacing the function that the hash function uses to read the file from disk, and in that function keep track of the amount of data that has been read together with the total filesize and then calculate the “assumed” status of the hash? I’m not sure if this is possible without recompiling the library though. Depends on if the library is statically or dynamically linked.
Since you liked my last diagram I made one for this too 
