Named arguments increase readability a lot

What you're saying is correct (and I came up with the example quickly without putting too much thought into it, but if you remove my made up sugar, this is what I was envisioning it would desugar to, which is possible to do today:

struct FooArgs {
    bar: usize,
    baz: usize,
}

impl Default for FooArgs { /* .. */ }

fn foo(FooArgs { bar, baz }: FooArgs) {}

fn main() {
    foo(FooArgs { bar: 3, ..Default::default() });
}

We would have to figure out what the anonymous struct syntax would be before using them for this use case.