Release vs Debug по-прежнему имеет огромное значение.Компилятор оптимизирует.См. Сообщение Скотта Хансельмана о выпуске и отладке .
Что касается того, что делает ILSpy, то да, он отображает CIL, а затем возвращает его к разумному представлению C # / VB.Я признаю, что ILSpy отлично справляется с этим!Я перевернул сборки других с этим и могу иметь смысл их кода.Единственный раз, когда у меня это ломалось, было с WPF и графическим интерфейсом, но я уверен, что есть способы, чтобы работать с этим также.
С точки зрения предотвращения изменения вашей сборки и защиты вашей интеллектуальной собственности, используйте Dotfuscator или другой инструмент для запутывания.