Non-overloaded, non-inherited static methods (like Class.b(a,c)) that take an instance as the first variable are semantically equivalent to a method call (like a.b(c)) so the platform team made an arbitrary, aesthetic choice. (Assuming it compiles to the same CIL, which it should.) The only way to know would be to ask them why.
Possibly they did it to keep the two strings close to each other lexigraphically, i.e.
String.Format("Foo {0}", "Bar");
instead of
"Foo {0}".Format("bar");
You want to know what the indexes are mapped to; perhaps they thought that the ".Format" part just adds noise in the middle.
Interestingly, the ToString method (at least for numbers) is the opposite: number.ToString("000") with the format string on the right hand side.