I wouldn't want any picture-indexing program to modify any of the picture files. Those should be off-limits, read-only.
I agree.
The issue of moving files, renaming, etc... I guess it could get quite complex trying to maintain it.
Years ago when newsgroups were big, a group of collectors posted pictures, thousands and thousands daily. They were pictures posted from stuff around the world, but, more common were Playboy collections. Someone created a program called Pic Check or something like that (I probably still have it somewhere).
It was maintained by a group I believe (don't quote me as I'm improvising a bit) and created a CRC for every picture maintained in an Excel sheet.
You would go on the newsgroup, download whichever category (or categories) of pictures you wanted by the 1000s (or a single picture). Now you had a directory of say 10k pictures that may or may not be legit, edited by someone, wrong names, not organized, comprised of several categories, etc...
A few maintained websites who created Excel spreadsheets (CSVs) comprised of the file names and a CRC for pictures that were legit. You'd download the CSVs, and it wasn't that many, maybe one zip file that contained ten CRC Excel files for a collection of Playboy pictures (maybe one CRC for each decade), place them in the Pic Check program, and run a scan.
The program would take the 10k files, and, providing the CRC matched, change the file names according to the CRC Excel file. It would then place them in the appropriate directories. At that point the remaining files were either junk or not associated with a CRC file that you didn't have. Maybe you desired obtaining more CRC files because it was part of another collection, or you didn't care to collect them.
The program also generated a CRC of missing files that the user didn't have but appeared in the CRC. So you could post the CRC to the newsgroup and someone may fill it for you allowing you to download them and run the whole process.
I was thinking for this idea, maybe generate CRC's for the pictures and the program could scan directories that are selected for the pictures. If a file name is different, then it could alert the user and/or ask the user if they want a list of files (pictures) changed to the new name in the directory which would then change the name in the CRC list.
Or you could have it scan a list of selected directories and it would report X files no longer exist (maybe because they were deleted or a name change) and Y new files exist allowing the user to edit the tags so a new CRC can be generated.
As for getting around locations, I think the program could just generate a list of file names that can be double clicked. When clicked, it opens the picture in the default picture viewer such as Windows Picture Viewer (maybe a preview window in the program, but we are more focused on how to locate pictures rather than turning it into a fancy program). Generating the list can be simple as it would just scan a directory and all the sub directories along with selecting other directories.
So it could have check boxes allowing the user to select: c:\Family Photos, c:\Kid Photos, etc... and it would scan the sub directories c:\Family Photos\Mom, c:\Family Photos\Dad; and then c:\Kid Photos\Joe, c:\Kid Photos\Mary, etc...