It is not just the file compacting that you are doing when you compact.
You are doing something much more significant
You are reindxing the entire file and ensuring all the internal pointers are pointing to the correct records
Only one of these has to be corrupted and it can cause the program to misbehave
What I am hoping that you will report is what happens to the migration/media issue with a compacted file?