Прочитав ваше редактирование, я подозреваю, что ваш заголовок немного неправильный. Вы действительно имеете в виду, что у него нет побочных эффектов вне зависимости от того, выбрасывается ли исключение (согласно текущей формулировке) или что у него нет побочных эффектов, когда выбрасывается исключение, но если метод завершается без выброса исключение, то это будет / может иметь побочные эффекты? Есть довольно большая разница:)
Последний описан в Accelerated C # 2008 как «нейтралитет исключений».