Not entirely sure where to post this. Feels exploitable, but I'm not creative enough to think of a way to use this to exploit right now, so I'm putting it here to help others duplicate it.
How Soul Swap works:
When you use this on a target, it grabs your shadow DoT spells and holds them for as long as you have the Soul Swap buff on you (max 20 seconds). Using it again on a new target will fire off all the held DoTs at once, making this a very effective way to jump on a new target as an affliction warlock (something we've had difficulty with in the past due to our ramp-up time)
What this bug does:
Your Soul Swap "remembers" debuffs indefinitely regardless of whether or not you have the Soul Swap buff on you.
How to:
Step 1: Apply a DoT to Target X. In this example, assume it is Corruption.
Step 2: Use Soul Swap to remove Corruption from Target X.
Step 3: Cancel Soul Swap buff or allow it to run out on its own. Either way works. I have NOT tried this out after having the buff purged, so anyone who could test that for me, I'd appreciate it.
Step 4: Cast a different DoT (assume Curse of Agony) on Target Y. Be sure your Soul Swap debuff is OFF and then cast the Soul Swap spell to grab Curse of Agony.
Step 5: Use Soul Swap Exhale on Target Z and you will find that both Corruption and Curse of Agony have been applied.
This does work with multiple debuffs. For example, in step 1, if you had applied both Corruption and Unstable Affliction to Target X, those would both carry over on Target Z.
TLDR - Apply DoT spell, use Soul Swap, remove Soul Swap buff, apply different DoT to different target, use Soul Swap again, use Soul Swap Exhale on another different target; all DoTs you had in those soul swaps will apply when only the single most recent should have been saved.
I'm sure someone can find a use for this. Have fun!