Regardless of whether it's into or try_into, their method implementations are non-generic. This means that when the compiler cannot automatically infer the return type, you need to use an intermediate variable to explicitly specify it. This approach is not very user-friendly.
I usually prefer using the conv metho provided by the tap crate. It's just a function that has a generic parameter T and it calls the From<Self> for T impl. I think that's how the Into trait should have been implemented, but I guess it's too late now...
Also, I'm highly in favour of a postfix as! I don't think turbofish syntax is a problem, it's a unique syntax of Rust that solves a very common parser issue (generics or lesser than), and it also has a sad history I don't think we should look over
That said, since it would be a keyword postfix, I think it would be possible to have a parser rule to allow the syntax to be x.as<T>
If this were accepted, it couldn't be called as. Since that's a keyword, it would mean everyone would end up writing .r#as() (if that's even valid today) rather than .as().
How about removing the rule that an as expression can't be followed by a dot? There is nothing preventing us from allowing
foo.bar()
.baz() as usize
.quux()
The precedence rules for as are actually almost the same as for the dot; the only difference is that its precedence is lower than prefix operators, so -x as i32 is the same as (-x) as i32, whereas -x.into() is the same as -(x.into()). But this is usually not a problem in practice. Actually, I consider it an advantage of as.