Answering your questions
file path should not be used when computing hash. Neither filename nor extension.
rehashing after each ID3 tag write would solve your problem provided that all changes occur in your application
hash can safely be used as a key for your purposes (see below)
probably yes, if I understand you correctly
Possibility of repeated hash value
Depending on the hashing function you choose, if you search, you will find/generate another file with the same hash in year, millenium, billion years or you will not do it till the end of the world.
It's all a matter of probabilities. Check details of each hashing function to learn how low the probability of finding another file with the same hash is.
Problem of changed tags in mp3 files
While this may be a problem, what you need to do is hash only the part of file that is not the ID3 tag. They are usually located at the end of the file and take a very small percent of the file size.
What you can do is to use the hashing funciton on the part of the file that will not be changing. Just skip the last N bytes of a file when hashing.