Earlier quoted context omitted.
If you want a deterministic smart contract language, you're better off avoiding the EVM, or worse, Solidity. Tezos (plug, plug, I'm the lead on the project) has a VM with a full formal specification, and even a rudimentary embedding in Coq. It's statically typed and purely functional. https://tezos.com/language.txt
We should plug Tendermint into Tezos as well.
Overall I agree with Tendermint (and contra Casper or DFinity) that it's better to just drop availability and to have a less subjective security model. It sucks to get stuck if the validator set becomes compromised, but it's not the end of the world.