title: Why does String.Clone() returns the original string and not a copy of it?
body: <p>Surprisingly, <code>String.Clone()</code> doesn't return a copy of a string as <code>String.Copy()</code> would do. Instead, it returns <code>'this'</code>, the original string.</p>
  
  <p>I would like to understand why the .Net Framework team choose to go this way.</p>
  
  <p>As per <a href="http://msdn.microsoft.com/en-us/library/system.icloneable%28v=vs.110%29.aspx">MSDN</a>:</p>
  
  <blockquote>
    <p>The ICloneable interface [...] requires that your implementation of
    the Clone method return a copy of the current object instance.</p>
  </blockquote>
  
  <p><code>String.Clone()</code> clearly doesn't follow this guideline.</p>
  
  <p>I know that strings are immutable, but if immutability was the reason here, <code>String.Copy()</code> would also return <code>this</code> but it doesn't.</p>
  
  <p>This is a rather theoretical question, of course.</p>