In Solidity I can call an internal function (inside the same contract that is calling it) the "usual" way:
myFunc();
or I can call it via .call, as discussed here or here:
callData = bytes4(sha3("myFunc()"));
this.call(callData);
(similarly also with appending parameters to callData).
The drawback of the second option is that it costs significantly much more gas (CALL is much more expensive than JUMP) and requires myFunc to be an externally available function - which could be fixed with an onlySelf modifier as suggested before.
The advantage of the second option is, that it allows for abstraction: A function (and it's parameters) could be provided dynamically and only be known at run-time. This would allow features similar to function pointers. Is there a way (potentially via inline assembly?) to call an internal function with the callData bytes instead of the explicit function name and parameters that have to be known at compile time without using the expensive .call?