If a benchmark later reveals it to be a bottleneck (perhaps because of the required allocation), then fix it within the constraints of your specific problem.
In many cases, needing to use format! is unnecessary. For example, if you're using println! to print something to stdout, you don't need to do println!("{}", format!("{}{}", foo, bar)), but rather, println!("{}{}", foo, bar); is sufficient.
I'm not aware of any specific plans to add new string interpolation facilities.
If you have a few strings to join, use any method you like. They will all be fine. format!("{}{}", a, b) is usually convenient. a + b works too if a is a String (you will need to learn the ownership difference between String and &str).
If you have a million strings, then start with this:
let mut s = String::with_capacity(estimated_total_length_of_the_string);
and then you can append to s in a loop, or use s.extend(…) to append from an iterator, etc.
I think it's an elegant & efficient way if you happen to have a bunch of &strs already. Up to you whether it's "better"; it does the same things as appending to an appropriate-capacity String manually.