This looks like a use of dynamic function pointer callbacks such as used in Closure or Javascript. Everything is a function that takes a function and returns a function which takes a function. Apparently some peoples brains actually work that way, but no, really it's easier to implement in ASM.
I have used function pointer arguments, for chaining call backs to create "do this", then "do this", unless this, then "do this" interrupt chains.
I can see how assigning those function pointers (static pointers) in my case to a variable might be useful.
These techniques also for a lot of the basis of C++ OOP under the hood and reoccurs a lot generally in OOP for everything from inheritance, to polymorphism.
del = object->getDeligate( candidate );
results = del->process( candidate );
ui->getRenderer( results )->render();
Would basically be a whole set of dynamic struct and dynamic function pointers in C.