Sim, não deixa de ser uma solução válida. Já usei e isso deixa o código ligeiramente elegante, mas vai variar de acordo com as circunstâncias e tem seus trade-offs. É muito útil para evitar funções gigantescas com vários "ifs" e "else ifs", mas, para fluxos que apresentam decisões mais simples, isso não seria necessário e poderia ser um baita overengineering. Além disso, o uso desenfreado de dicionários para armazenar as decisões condicionais poderia levar a um consumo exagerado de memória em um sistema, quando, na verdade, você só precisaria fazer um:
if (condicao) {
return x;
}
return y;
O título "Esqueça o if/else" se torna inadequado, pois acaba confundindo pessoas com menos experiência. Algumas pessoas poderiam acabar se tornando "o chato de uma seita anti-ifs" e complicando muito o que deveria ser mais simples, nao agregando em nada no core de uma discussao tecnica de alguem que nao entendeu nada dos problemas resolvidos, repetindo apenas "to vendo q vcs estao usando blocos condicionais demais, vamos refatorar".