The getter would get a message about the state of the struct it's in, which is defined by a combination of the struct's properties, which are finite.
First, this isn't about micro-optimization, I just think that:
StringBuilder msg = new StringBuilder();
...
msg.AppendLine("static string");
...
looks cleaner then:
String msg = String.Empty;
...
msg = String.Concat(msg, "static string", System.Environment.NewLine)
...
so just an aesthetic choice.
The msg variable has to be initialized empty either way, so the extra line doesn't bug me. But how bad is it to construct a new StringBuilder in a field that returns a string?
EDIT I just wanted to know if putting a StringBuilder constructor in a getter was going to open up a huge can of worms, be ridiculous overhead, some never use constructors in getters kind of anti-pattern thing, etc... not to know everybody's favorite most performant way to concat non-looping strings.
EDIT2 What is the usual, best practice, performance threshold for a getter and does a StringBuilder constructor fall below that?