You are certainly correct in expecting no operational differences between the decoders. But there are other variables involved.
One way to determine if it the decoder or something else is at fault would be to swap decoder between the two SW9 engines OR install a new known good decoder in the bad engine. It will get you pointed in the right direction as to what you need to be looking for.
Other variables are
1) Wheel gauge, wheel width and truck tracking differences between the engines. Use a NMRA track and wheel gauge. Why would this make a difference? In short, pun intended, Track electrical noise. Of related note...Some people experience complete loss of control AND programming and this often happens as a train derails. That because DCC decoders are a lot more picky about power per say.
Engines rolling down the track will encounter track shorts of various levels and durations even if there no derailment. The typical track short circuit consist of actually a series of smaller but strong shorts as the wheel makes and break electrical contact. The sudden high current flow that is created by the short interacts with the layout wiring (inductance). The end result is voltage spikes or that "arc" or spark you see. Decoder cannot tolerate to much electrical noise before they can go crazy. Thus it is possible with a bit of mechanical tuning, you can eliminate or greatly reduce the problem.
Another way to address the noise on the track is to filter it out.
Sometimes called bus termination for technical reasons, the idea is to provide an alternative place for that voltage spike to go beside right back at the decoder. The filter absorbs all the track noise cleaning up the DCC signals and greatly reducing a lot of those weird mysterious operational problems that we all see once in a while. Problems just like this one.
For more information about track filters/terminators see
More if you are technically interested.