IL code doesn't necessary translate to legal C# source code.
This is no article it is just an advertisement which tries to stress the
advantages of obfuscating while trying to hide the disadvantages.
Also I didn't found anything in the "article" which says about decompilers
producing illegal code from an obfuscated assembly.
Substituting a loop which a number of goto's is no illegal code, it is a bit
harder to understand but a lot easier than plain assembly code.
And I don't know what the point of encrypting string literals is, since you
can easily attach a debugger and see where the control flow goes if you
press the register button and the license key is yours.
"Obfuscators remove debug information and non-essential metadata from a file
as they process it. "
I shuddered on this sentence. How can they know what is non-essential for my
app?
"Obfuscation puts the reverse engineering bar back to or above where it was
before the days of intermediate language "
Plain stupid claim. Even reading obfuscated plain msil is a lot easier than
reading assember code. You can see all variables in the decompiled code,
in assembly you see just register.
Obfuscating cannot rename public or protected members since they are part of
the api, additionally renaming fields destroys you app if you using relying
in any part of your app.
<humour>
However, if somebody is really interested in obfuscating his code see
www.ioccc.org. Some of the techniques valid in C may be also useful in C#..
</humour>