In version 4.x - because of the data file structure change there were pointers put into the DFs to redirect the program to the proper folder holding the data location instead of modifying all the varying programs. (Ever wonder why after an upgrade or conversion the SOA files are still there). For example there is a WO being created to support a SO demand, the WO module is legacy and wants the SO1 and SO2 soa files but the data is in SO_SalesOrderHeader and detail files. The embeddedIO pointer redirect the program from the SO1 to the new file SO_SalesOrderHeader. Simply put EmbeddedIO's are pointers to redirect the program from the legacy file to the new ones.
When these pointers get damaged, and they will, running this script repairs or replaces the pointers. I'm told this is a no-harm no-foul script. I haven't seen or heard of any issues caused by running this script (although I do not recommend running it with extra folders in the company data directory. Keep that location clean, and remove any duplicated or copied folders.
I used the script today to resolve a issue where ABC couldn't find IM_Item file when accessing an SO. Ran the script for IM, CI and SO. - Resolved. The more you muck with the data, the more often you'll likely run this script.