The determination is pretty straightforward. odrive will compare the attributes of the file as it is seen locally with the attributes of the file, as they are reported by the remote storage. If they differ then the local file is uploaded, with the assumption that it has changed somehow. Depending on the storage source and the atributes of the local files, and where they came from, there can be some variation in values compared.
We have accounted for your scenario, however, and there there is a subtle variation in the comparison logic, depending on the type of "merge". The comparison is more strict if the remote files have been scanned and indexed prior to the local files being scanned and indexed. In this case it is more likely that a re-upload will occur. The comparison is less strict if the remote and local indexing happens at the same time. I know this description may not be clear, so here is an example:
Let's say you have the "odrive\OneDrive\A" folder expanded via the odrive Desktop application and "odrive\OneDrive\A\file.zip.cloud" is listed. If you copy a local "file.zip" into the "odrive\OneDrive\A\" folder, (alongside file.zip.cloud) there will be a "strict" comparison between the remote OneDrive\A\file.zip and the local file.zip. In this case chances are higher that a re-upload occurs.
Now, let's say you have "odrive\OneDrive\A.cloudf" listed locally, via the odrive Desktop Application. In the cloud there is a "OneDrive\A\file.zip" file, but odrive has not yet seen that file because the local A.cloudf placeholder has not been expanded and indexed. If you take a local "A" folder (that has a file.zip inside) and copy that into the local "odrive\OneDrive\" folder, it will replace A.cloudf. The contents of the remote "OneDrive\A" folder and contents of the local "odrive\OneDrive\A\ folder (that you just copied in) are scanned and indexed at the same time. In this case, the comparison is relaxed a bit because there are certain assumptions that can be made, and it is very likely that this is a "local data migration" scenario, like the one you are going through right now.
To summarize, if you replace placeholder folders (.cloudf) with local folders, where the local folder contains the same data as the remote folder, you are much more likely to get a "clean" result, without re-upload.