Po pierwsze, wg moich testów ify ze stringami nie są aż tak wolne w porównaniu do switcha (a przynajmniej dla dużych wartości), lecz to prawda, że dobrze by było je przerobić.
Po drugie, nawiązując do pierwszego, polecam wykonać pseudo switcha od stringów, czyli przerabiać literały stringa na inta w czasie kompilacji (constexpr) i potem dać je do switcha. To pozwoli na mocną optymalizację.
Po trzecie, taki szalony pomysł. Możesz spróbować przerobić kod skryptu na coś w stylu ONP, odkładać kolejne zmienne, instrukcje, funkcję na stos i je po kolei wykonywać i zdejmować.