Vantagens em uso de ponteiro p/ função.

Muitos dos que começam em C não conseguem visualizar utilidade para os ponteiros de função, então aproveitei que estou refatorando um código e vou mostrar aqui:
cpp code
Conseguem me entender agora quando digo que uma arquitetura que não permite implementar este tipo de solução é uma coisa que me deixa frustrado?
cpp code
void MCS_config_canal_moedeiro(char *titulo,unsigned char(*getter)(void),
void(*setter)(unsigned char)){
eTECLAS tecla;
unsigned char flag = getter();
if(flag)
flag = 255;
JOGO_exibeMensagem(titulo);
for(;TECLAS_getInatividadeTeclas();){
tecla = TECLADO_getch();
switch(tecla){
case TECLA_INC:
case TECLA_DEC: flag = ~flag;
break;
case TECLA_ENTER: setter(flag);
case TECLA_RETURN:
return;
}
if(flag)
DISPLAY_setterLiteral('O','N',' ',' ');
else
DISPLAY_setterLiteral('O','F','F',' ');
}
JOGO_exibeMensagem(" FEITO ");
}
void MCS_tela_config_2_reax(void){
MCS_config_canal_moedeiro(" NOTA 2 ",PARAMETROS_le_nota_2,PARAMETROS_grava_nota_2);
}
void MCS_tela_config_5_reax(void){
MCS_config_canal_moedeiro(" NOTA 5 ",PARAMETROS_le_nota_5,PARAMETROS_grava_nota_5);
}
void MCS_tela_config_10_reax(void){
MCS_config_canal_moedeiro(" NOTA 10 ",PARAMETROS_le_nota_10,PARAMETROS_grava_nota_10);
}
void MCS_tela_config_20_reax(void){
MCS_config_canal_moedeiro(" NOTA 20 ",PARAMETROS_le_nota_20,PARAMETROS_grava_nota_20);
}
void MCS_tela_config_50_reax(void){
MCS_config_canal_moedeiro(" NOTA 50 ",PARAMETROS_le_nota_50,PARAMETROS_grava_nota_50);
}
void MCS_tela_config_100_reax(void){
MCS_config_canal_moedeiro(" NOTA 100 ",PARAMETROS_le_nota_100,PARAMETROS_grava_nota_100);
}
Conseguem me entender agora quando digo que uma arquitetura que não permite implementar este tipo de solução é uma coisa que me deixa frustrado?