Someone trying to reverse engineer your site probably wouldn't use anything of yours. They would start fresh with their own set of tools.
I am pretty much biased towards open source, because it's cheaper, evolves faster, and you can mix and match.
The thing that is at the core of your product you must build yourself. Otherwise you're always going to be hampered in your effort to make it excellent. The problem is not that others can copy it, the problem is that your product is going to be shit, regardless of whether or not it is copied.
Everything that is not at the center of your product you must buy, as building it will only distract from what you actually need to do.
I know this is very general, but I don't know much about you or your ideas. I'll still try make this more concrete:
If your product is software or a service that depends on the quality of software, then don't touch CMSs. Build from scratch (not including the operating system)!
If you are a teacher or a tax advisor who creates great content for his clients, just set up and customise your joomla and publish your stuff there. Don't bother to build software!