¿Sería técnicamente posible? Si se va a implementar en Java, diría "muy, muy difícil, pero posible" sin una pérdida significativa de rendimiento.
En realidad, estoy escribiendo a mano un DSL estáticamente escrito en Java en este momento, y la única forma en que he encontrado para evitar la verificación de tipos en tiempo de ejecución es mediante el uso de genéricos y suprimir advertencias "no verificadas" ... es decir, hasta que llegó el momento de implementar matrices multidimensionales (los parámetros de clase deben conocerse en el momento de la compilación y, por lo tanto, son inherentemente finitos, mientras que las matrices multidimensionales representan un número infinito de tipos ...) Todavía estoy tratando de resolver esto, desafortunadamente, estoy seguro de que Encontraré problemas similares con las clases definidas por el usuario.
La cosa es que sigo tropezando con este tipo de problemas, pero después de sentarme un rato, encuentro una buena solución. Entonces, para hacerlo y tener los beneficios de rendimiento de la escritura estática (sin verificación de tipo de tiempo de ejecución), diría que es extremadamente difícil, pero no imposible. Menos el rendimiento, diría difícil pero muy posible.
Sé que es una vieja pregunta, solo pensé que mi experiencia podría ser valiosa para alguien.