Buenas Lucas!
Lo que entendí de tu modelo es lo siguiente (pido disculpas si lo entendí mal):
Por supuesto que esto esta bien y como bien decís vos, el ignorar el buffer o no es parte del comportamiento de las acciones en particular, ademas de que en este caso las clases que implementan la interfaz cumplen con todo el contrato y no solo con una parte como en el problema de Esmir. Ademas si el día de mañana no van a existir distintos tipos de Buffer que afectan o no a distintos tipos de habilidades no habría problema en dejarlo así, los "code smell" suelen ser cosas como lo anterior quizá no traen un problema o quizá si.
Sin embargo si esto lo llevamos a un ejemplo donde ignorar parámetros nos traiga un problema, nos damos cuenta de que pasaría si uno tuviese mas acciones y estas pudiesen o no aplicar distintos modificadores, por ejemplo si tuviéramos un modificador por VelocidadDeAtaque o si tuviésemos otro modificador por DañoMagico, etc etc. es fácil ver que el personaje empezaría a tener mas estado que solo un simple "buffer" y tendría atributos como rapidezDeAtaque o aptitudMagica, etc. Ademas de que ahora las acciones no recibirían solo un buffer cuando se llame a "realizar" sino que seria algo del estilo: "+realizarCon(unBuffer, unaRapidezDeAtaque, unaAptitudMagica, etc)" donde dependiendo de las acciones utilizaran alguno o ninguno de estos parámetros.
Esto hace que se termine violando el open-close tanto para el Personaje como para las Acciones ya que si se desea agregar una nueva regla de negocio con respecto a un nuevo modificador, se deba modificar todo lo anterior. Es por ello que una mejor solución quizá termine siendo en reconocer esta diferencia entre acciones. Por ejemplo de las acciones que son "Buffereables" y de las que no, de las que son "IdoneasParaMagia" y de las que no, y las que son mejorables debido a la velocidad y las que no. Una solución posible es la siguiente:
En este caso el Personaje es el que lleva sus acciones y el que guarda o no su buffer es el PuñoDeFuego, de esta manera si queremos agregar un modificador que afecta a habilidades de magia de forma especifica, seria crear esta nueva propiedad y hacer que la habilidad "BolaDeFuego", por ejemplo, implementara la interfaz "AptaParaMagia" funcionando de forma similar que la interfaz "Buffereable".
En conclusión, siempre hay que saber reconocer cosas raras del codigo como esto de ignorar un parámetro, pero saber justificar si para el caso donde se esta trabajando resulta un problema grave o algo ignorable.
Saludos!