Firstly with cPanel 11 you don't have to have the addon domains as folders within public_html.
In your cPanel account:
- Click "Addon Domains"
- Enter the new domain e.g. example.com
- You will find that cPanel fills in the Document Root to be public_html/example.com so to keep the files outside of the normal public_html just change that to say example.com
At this point the addon domain can't be accessed as a folder of the primary domain e.g. primary.com/addon.com, however cPanel does create a subdomain of the primary domain therefore the addon can be accessed as addon.primary.com, this can be solved by adding rules to .htaccess for the addon domain. The rules just redirect from the addon subdomain back to the true addon.
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^addon\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^(.*\.)?primary\.com [NC]
RewriteRule (.*) http://www.addon.com/ [R=301,L]
That example .htaccess redirects the non-www version of the addon domain and requests going to the subdomain of the primary to the www version of the addon domain.
So now no duplicates of the site on different domains, this works fine if you are the only user for the hosted sites. If you wish to allow different possibly untrusted users access to sites then a reseller account is the correct solution.
I hope that all make sense.