Using Dread Shade (minion targetable) and Infernal Shade (enemy targetable). I have the Congregation of Shades + Flight of Fire specialization nodes in each, respectively, for +2 max shades (6 total). Also using Infernal Dread, which refreshes Infernal Shade when casting Dread Shade.
As expected:
If I cast Dread Shade continuously, I get to the cap of 6 and they start replacing each other, as expected. Same if I just cast Infernal Shade repeatedly.
If I cast Dread Shade to the cap of 6 and then cast Infernal Shade, the Dread Shades start getting replaced.
However, if I cast Infernal Shade to the cap, having 6 active shades, and then cast Dread Shade, no Infernal Shades are lost. Dread Shade seems to have its own cap of 2, after which they start to overwrite each other:
Interestingly, if I then cast Infernal Shade on a new target it then replaces a Dread Shade and I go up to 7 Infernal Shades!
I think the behavior of “Infernal Shade always replaces Dread Shade, Dread Shade only replaces up to 2 Infernal Shades” is great - prioritizing the damaging shade over the buffing shade. It just seems that there is a problem in calculating the max shades when they are combined.