Последний допускает методы цепочки в интерфейсе беглого типа, но он может скрыть тот факт, что объектом манипулируют.Не очень часто манипулируют объектом, который передается таким образом, потому что он может запутать потребителей метода, когда их объекты мутируют.Что вы можете сделать, это клонировать объект, манипулировать им, а затем вернуть манипулируемый клон.Это оставляет объект в начальной ссылке нетронутым.
В первом случае потребитель передает переменную и говорит: «Дорогой метод, пожалуйста, возьми эту переменную и делай с ней все, что хочешь, включая, возможно, указание ее на новый адрес памяти».Таким образом, разработчик знает, что переданным состоянием можно манипулировать.
Кстати, я думаю, вы должны прочитать это: http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx
Когда я беру интервью у потенциальных разработчиков, я спрашиваю многовопросов о передаче ссылочных и значений типов по ссылке и по значению.Я брал интервью у разработчиков на должности очень высокого уровня, которые не понимают этого, но я думаю, что это фундаментально для разработки на C #.