Seria tecnicamente possível? Se for para ser implementado em Java, eu diria "muito, muito difícil, mas possível" sem perda significativa de desempenho.
Na verdade, estou escrevendo uma DSL de tipo estaticamente em Java agora, e a única maneira que encontrei para evitar a verificação de tipo em tempo de execução é usar genéricos e suprimir avisos "não verificados" ... ou seja, até a hora de implementar matrizes multidimensionais (parâmetros de classe devem ser conhecidos em tempo de compilação e, portanto, são inerentemente finitos, enquanto matrizes multidimensionais representam um número infinito de tipos ...) Ainda tentando descobrir isso, infelizmente-- tenho certeza de que encontrará problemas semelhantes com as classes definidas pelo usuário.
O problema é que continuo tropeçando nesses tipos de problemas, mas depois de ficar um tempo pensando nisso, encontro uma boa solução. Portanto, para fazer isso e ter os benefícios de desempenho da digitação estática (sem verificação de tipo de tempo de execução), eu diria que é extremamente difícil, mas não impossível. Menos o desempenho, eu diria difícil, mas muito possível.
Eu sei que é uma pergunta antiga, apenas pensei que minha experiência poderia ser valiosa para alguém.