Pelo que entendi uma diferença importante entre o Strategy e o Chain of Responsibility é que o Strategy deixa a responsabilidade em decidir qual estratégia utilizar para o programador . Já no Chain of Responsibility a responsabilidade de escolher a estratégia correta está na cadeia de objetos que verifica de quem é a responsabilidade. Então deixar o programador que vai utilizar o seu código criar a cadeia de objetos não deixaria o seu código vulnerável a falhas já que quem vai criar a corrente precisa entender como cada estratégia funciona?