Olá,
Para mim fez bastante sentido o uso da palavra reservada final na implementação do Template Method. Se uma classe "filha" tem uma lógica diferente para a implementação de seus métodos, e sobrescreve tudo o que o pai fez, fica difícil para mim acreditar que ela deva herdar da classe Template. Acredito que o padrão Template Method não deva ser usado nesses casos.
Por outro lado, o uso do Template Method força a essa classe filha implementar todos os métodos abstratos da classe pai, semelhante ao trabalho de uma interface. Não acredito que essa ligação "semântica" seja suficiente forte para ainda usar o Template Method nesses casos. Eu faria uma interface similar à classe de Template. Questão de gosto pessoal, talvez?
Quero saber o que vocês acham dessa abordagem. Prós/Contras?