Лично я не вижу никакой ужасности этого подхода. Вариант с оператором return немного проще замечается, зато вариант со специальным синтаксисом для финального выражения короче и более адекватно смотрится с короткими анонимными функциями, которые в Rust довольно часто используются. Я бы не сказал, что читаемость в целом страдает.
Я так понимаю, этот вариант достался ржавчине от функциональных языков (ocaml, например).
На практике, пока я экспериментировал с ржавчиной ( github.com/ozkriff/marauder ), никаких сложностей с этим у меня не возникало: если у функции в сигнатуре есть "->" то сразу понятно, что последняя строчка чего-то возвращает, а анонимные функции обычно очень короткие (иначе стоит вынести из них логику) и в них вообще все сразу понятно.
Я так понимаю, этот вариант достался ржавчине от функциональных языков (ocaml, например).
На практике, пока я экспериментировал с ржавчиной ( github.com/ozkriff/marauder ), никаких сложностей с этим у меня не возникало: если у функции в сигнатуре есть "->" то сразу понятно, что последняя строчка чего-то возвращает, а анонимные функции обычно очень короткие (иначе стоит вынести из них логику) и в них вообще все сразу понятно.
По этому поводу интересная статейка давно еще была: lucumr.pocoo.org/2012/10/18/such-a-little-thing