En mi opinión, si usa delegados, entonces en realidad no está implementando el Strategy pattern. En realidad está implementando algo más parecido al Observer pattern. El objetivo de los patrones de diseño es que cuando dices "he utilizado el patrón de estrategia aquí", todos tienen mucho contexto sobre lo que has hecho. Cuando comienzas a decir cosas como "He usado el patrón de Estrategia, excepto con mis propias modificaciones personales", entonces las cosas se ponen feas.
Pero, si entiendo lo que está tratando de decir, una de las cosas buenas del patrón de estrategia que no es tan clara entre los delegados es que puede tener una jerarquía de objetos que implementen una estrategia.
Digamos que estoy probando algún software. Quiero probarlo usando el mouse y usando el teclado. Así que implementaré un patrón de Estrategia para conectar el método de interfaz que se usará para cada caso de prueba ... para poder escribir el caso de prueba una vez y ejecutarlo completamente utilizando MouseStrategy y KeyboardStrategy. Desde allí puedo implementar especializaciones como MouseExceptForDialogsStrategy, una especialización de MouseStrategy. Este tipo de jerarquía, cómo extenderlo y anularlo es fácil de entender para cualquiera que esté familiarizado con los conceptos de OOP ... mientras que la forma de lograr y extender lo mismo con los delegados es mucho más complicado y mucho más oscuro.
Como en muchas cosas ... no se trata de "¿puedes hacerlo?", Sino de "¿deberías hacerlo?".