First of all, since the web assembly will be the target language; I assume, we won't be tied to C++. We can use any language as long as it compiles to the web assembly. This is good news.
On the other hand, I agree there's a tradeoff and that's exactly my point. I think safety and correctness are more important for a smart contract and a language which is easier to reason about would be a better choice. Especially if that platform allows the contracts to be proved correct formally. Functional languages are not that slow with current machines and they lend themselves better for parallel execution.
I'll check Dan's posts. Thanks.