Apenas três coisas:
a) Reflection incorre uma perda na ordem de 5%. O ideal é você poder usar algo como a nova API de Compiler do Java 6 ou o Janino para Compilar isto em uma classe que implemente uma interface, e/ou uma classe abstrata. Segue um exemplo de um código que implementei semana passada, utilizando o janino:
/**
* Compila/Instancia um Verifier a partir do código-fonte especificado
*
* @param text
* codigo-fonte do verifier
* @return verifier
*/
private Verifier getVerifier(final String text) {
try {
final ClassBodyEvaluator classBodyEvaluator = new ClassBodyEvaluator();
classBodyEvaluator.setDefaultImports(new String[] {
SerializedDataVerifier.class.getCanonicalName(),
Verifier.class.getCanonicalName(),
AbstractVerifier.class.getCanonicalName() });
classBodyEvaluator.setImplementedTypes(new Class[] { Verifier.class });
classBodyEvaluator.setExtendedType(AbstractVerifier.class);
classBodyEvaluator
.cook(String
.format(
"protected void verifyInternal(VerifierSource verifierSource) { %s }",
this.text));
return (Verifier) classBodyEvaluator.getClazz().newInstance();
} catch (final Exception e) {
throw new IllegalArgumentException(String.format("getVerifier(text=%s)", text), e);
}
}
Este código me cria uma classe derivada de AbstractVerifier (que roteia para verifyInternal) e que implementa a interface Verifier, a partir do conteúdo de texto. Resumindo, é um Pattern de Command, de forma que possa ser usado em uma cadeia-de-responsabilidade maior.
No caso, a única coisa que faço é uma interpolação entre um template de código-fonte, de forma a construir os métodos. É uma boa idéia? Sem dúvida: Reavaliar periodicamente o mesmo bloco de código não é uma boa idéia, quando o que você quer é performance.
Mas lembre-se: Otimização prematura é a fonte de toda a maldade no mundo 
b) Existe um opcode específico, otimizado para switches. Este artigo pode te dar mais detalhes
c) Existe limite de 64KiB para comprimento do método.
Espero que ajude.
p/S: Pelo pouco que li do seu projeto, acho que você pode aprender algumas coisas lendo os artigos do NestedVM, que é um emulador de MIPS feito para executar sob uma JVM.