To be fair Pet AI and Pet part of server side code should be a big issue only with Demonology since we rely on Pets. But bad code for the entire Class is unacceptable.
Thing is, someone during legion/BFA wrote a really bad code, that is now a foundation for many spells, and when new coders trying to make new ability/passive/talent they take code from preexisting abilities/passives/talents.
For example - Since BFA we had a talent “from the shadows” now known as “wicked Maw” - dread bite of our dreadstalkers applies debuff on target that increases the shadowflame damage we do to the target. And average warlock would assume that it applies to any “Shadowflame” damage source, but that warlock would be wrong. Since “From the shadows” and “Wicked Maw” is coded to work with specific spells, and to be specific with predetermined IDs of the spells, thus is why in SL when blizzard tinkered with spells and changed some IDs Implosion stopped to work with “from the shadows”/“wicked Maw”.
And at the same time we had a PvP talent “Pleasure through pain”
When our Succubus is active cast time of our shadowbolt was decreased by 0.5 seconds and all shadow damage done by US was increased by 15%.
And the code of that spell was way different, because Succubus talent worked as a modifier to Shadow based damage, increasing not only basic shadow damage of Shadow bolt, corruption, balescourge bombers… but also all shadow based schools of magic - Shadow flame, shadow frost(ren’dorei racial). Talent also increased damage of items, trinkets, azerite effects if they did shadow based damage. This is an example of a spell well made and well coded - the spell blizz took from us.
And back to bad coding, now because blizzard took bad base code of legion/BFA demo, they screw up Soul leech, because Soul leech now generates shield only with predetermined base skills/pets of warlock, while it stopped working from Wild Imps, tyrant, Doomguard(demo talent), and all single target damage spells/effects from Hero talents - like Wither(Immolate/corruption).