C++ vs C# for Rhino?

Nope. Your code gets compiled to .NET intermediate language, which gets JITted (just-in-time compiled) when run. If you really think you need to protect your code you can always write your core in C/C++, and write wrapping code in C#. But I doubt that many users would even consider decompiling your code. Besides, if someone really wanted to, they could reverse engineer the code from a binary compiled C/C++ code as well.

/Nathan