I can't help but think of Erlang. Erlang is by no means a DSL, but it is very well suited (both in terms of language features and its Virtual Machine) to writing distributed, concurrent applications. Why manipulate a hyopthetical language so that it is functional, has message-passing, allows hot-swapping of code, enforces single assignment etc. when a language with all those features already exists? And once you have manipulated a language to that extent haven't you created another language anyway, eliminating the possible benefits of having a single, malleable language?