I guess that not really, you would either have to call foo((1,2)) or introduce ambiguity. Moreover, it would require introducing either implicit casts from tuples or fallback to tuples, for that to work:
let arg = (1,2); // treat it as truct literal here
foo(arg); // or implicitely cast here?
similarly as following would:
let arg = x: 1, y: 2; // obvious that it's a struct
foo(arg);
Anyway, I think one of the reasons why Rust currently requires field names in struct declaration is to make it obvious without consulting struct definition and being immune to reordering of fields. Let’s keep it that way and let tuples stay tuples.