How can I store function names to be executed on a subset of rows?
Any time you use a scaler function you have to run the function once for each row.  Complex CASE statements will usually be faster for SQL to process, even though there are painful to read.