Rustで文と式が混在するのは最適化のため?文でエラーが発生したときはどうなるんかね?

resultとかの戻り値用変数があると自然だけど、末尾呼び出し最適化が面倒になるので痛し痒し。