особой ценности, кроме эстетической, в локализации нет, и я это нигде не использую сам, НО есть случаи когда просто имя переменной не катит, а нужно производить конвертацию через (double)somevar.Value. Зачем?
Затем что есть случаи когда у вас слева переменная типизируемая неявно через var а ваша somevalue не имеет определенного типа, но имеет несколько встроенных неявных приведений к нужному типу в выражении. То есть если у вас dvar - тип double, и ovar - оптимизируемый параметр, в выражении dvar + ovar будет проводиться неявно приведение ovar к double для выполнения операции сложения. Хотя внешне будет выглядеть что как то все само отлично складывается

.
Никаких побочных эффектов о которых вы пишете не может быть, по той самой причине что ovar обычно преобразуется к типу-значению(например string) и следовательно передача значения происходит всегда ПО ЗНАЧЕНИЮ, то есть путем копирования. В отличие от ССЫЛОЧНЫХ типов, с которыми могли бы быть эффекты.