There was much speculation as to how the "Ignore other applications that use Dynamic Data Exchange" setting got set. Well, one possibility is that somebody used global state to manage a local problem.
"Why on earth does this setting exist?" I don't know, but there appear to be scripts which rely on it.
The setting is exposed to scripts, and perhaps at some point you ran a script which didn't want Excel to be interrupted while it was running. The documentation for the Excel Application Object does say that it contains application-wide (global) settings.
I'm not saying that's why you are encountering the problem, but it's just one possibility I ran across while doing some Web searching to learn more about the setting.