Yes, this seems strange. What's happening is that you're passing a reference to your string in the parameter, but you're passing it by value, i.e. you're creating a copy of the reference in the parameter. So when you reassign it within the scope of you're function, you're only changing the changeMe() method's local copy of your string reference.
Lots more info about this here:
http://www.yoda.arachsys.com/csharp/parameters.html