From what I've read, code obfuscation isn't really that hard to "crack", and it will only delay the inevitable. In that case, what is it's purpose?
If someone really wants to steal your source they can.
If someone needs to view your source code for harmless/helpful purposes they can't.
You probably shouldn't be storing anything sensitive in the code, so that shouldn't be an issue.
If you don't obfuscate, you're still not providing the full source code, so you could sell a "source code license".
The funny thing is, the only code that I have ever seen obfuscated is terrible code that has bugs in it. The only reason I need to look at the code is to figure out what the problem is and what I can do to fix it.
For example, I need to replace some of the images in ASPDotNetStoreFront. When looking for the location of the tags, I found that they were contained within compiled code. CRAP. So I figured I would decompile the code, to find out which img tags to replace via Regex. I tried to view the source code to see what images could possibly come from the given compiled method, and reflector can't handle it, I presume because of obfuscation. I don't really have time to go looking around for de-comilers/de-obfuscators.