They do work, but almost all of them have tools to decompile them equally as easy. And yes it is a problem with anything dot.net. I love C# but I hate that aspect of it. UnityVS is too expensive for what it is, but if you use it a ton, it is a good thing to have cause Unity's MonoDevelop sucks, MonoDevelop isn't so bad in general if you run a newer release of it. But since Unity runs stuff that is years old and does not contribute bug submissions.