Только дальнейшими вызовами можно продлить жизнь переменной на стэке. Это суть стэка. Как только вы выходите из функции, память освобождается под переменные других функции и все указатели на переменные внутри становятся невалидными.
template<typename T>
callbackFunction(T &t) {...}
void someFunction(int index)
{
switch(index)
{
case 0: callbackFunction ( someObject->someMethodOne() );
break;
...
Вообще у вас тут паттерн проектирования под названием фабричный метод. Не надо придумывать велосипед, а надо смотреть в книжки.