В StringWriter (mscorlib.dll) я нашел код:
private StringBuilder _sb;
// (...)
public override string ToString()
{
  return ((object) this._sb).ToString();
} 
Я не вижу причины для этого (так же как и мой R #, но иногда это неправильно). ToString() - virtual, поэтому кастинг не меняет поведения.
Какая оптимизация здесь делается?
