I recently helped troubleshoot a case where someone couldn't run their simulation because I/O gave an error about redefining the time dimension when it already existed. It took us awhile to figure out it had nothing to do w/ the time dimension in the file, instead, they had two output streams with the same filename prefix and frequency, etc. So ultimately, two output streams attempting to access the same file.
We could implement a check in the driver that quickly checks all OM that have been setup to ensure no two share a name, if so, throw an error that is human readable and makes it easy to fix.