For the scope of this audience, I don't think it's necessarily a question of who's more responsible than the other. You're right, all the parties you've mentioned are just as culpable for their role in wrong-doing, even if it's abstracted or removed from implementation. As engineers though, we're in the unique position of being the gate-keeper between ideas, "visions" if you will (in the parlance of our times), and fruition. We're a gatekeeper between reality and the delusional musings afforded to people who aren't the engineers. We can say, "Fuck no, that should literally not exist or be built in any way", and do it loudly to stop the other parties from realizing their abusive vision. Or under dire circumstances, we can sabotage systems that need to be broken if it's too late to stop them from being created.