The position of the customer name in the URL is practically irrelevant with regard to search ranking, since other factors such as on-page titles and descriptions and the relevance of phrases appearing in on-page text and as link-text in inbound links *to* these pages is far more important. The subdomain approach seems more attractive to me based solely on 'branding' considerations. Also, it reveals far less about the file structure that you use to implement these sites, and that appeals more to me for several reasons, both aesthetic and technical.
Any subdomains declared with the typical cPanel set-up will be 'invisible' to this mod_rewrite code. Because of the way that cPanel 'creates' subfolders for "add-on" (sub)domains, requests for those (sub)domains are rewritten by the cPanel-created code directly to their corresponding subfolders, and by-pass any code in your "main domain's" root .htaccess file.
Therefore, any access controls, canonicalization redirects, and other 'special handling' that you want to apply to these cPanel subdomains will need to be duplicated in these subdomains' own .htaccess files. In addition, you will likely have problems in trying to 'share' server-side scripts and other objects between the cPanel subdomains and main domain and other subdomains -- As far as cPanel subdomains are concerned, they exist in their own 'private' filespace, and cannot reference anything about their own 'home directory' unless you declare
Aliases and
ScriptAliases in the server configuration to support this. Otherwise, these scripts and other resources will also have to be duplicated within each cPanel-created subdomain's filespace.
In general, I find it far easier to ditch cPanel for multiple domain/subdomain servers, and instead go with an IP-address-based virtual server using domain-and-subdomain-to-subfolder rewriting code of my own design. Many hosts provide this service level for about one dollar more per month over 'standard' name-based shared hosting, and call it a "unique IP address" or "private IP address" or some-such thing.
The key is that it is an IP-address-based virtual server as opposed to a name-based virtual server, and therefore, you can point absolutely any domain name or subdomain to the server using DNS -- The server configuration (e.g. cPanel) does not need to 'know' any of the hostnames, and *all* hostname requests arriving at the server's IP address will 'land' in the top-level .htaccess file, allowing you to do anything you like with them. Also, the issues of sharing scripts and other objects between the domains/subdomains goes away; the URL-to-filespace mapping is entirely within your control, and all in one spot.
Once you've "crossed the line" from trivial cPanel configurations into domain/subdomain rewriting (as you have already done here), this IP-based virtual server setup is *much* simpler to configure, use, and maintain (admittedly just my opinion).
Back on track, the general form for HTTPS<->HTTP redirection is something like this:
# Redirect HTTP requests for secure pages to HTTPS
RewriteCond %{SERVER_PORT} !=443
RewriteCond %{HTTP_HOST} .
RewriteRule ^(secure-URL-path1|secure-URL-path2|secure-URL-path3)$ https://%{HTTP_HOST}/$1 [R=301,L]
#
# Redirect HTTPS requests for non-secure pages to HTTP
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} .
RewriteCond $1 !^\.(gif|jpe?g|png|ico|css|js|etc-etc)$
RewriteCond $1 !^(secure-URL-path1|secure-URL-path2|secure-URL-path3)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Note the check for "HTTP_HOST not blank" -- This is not required on name-based virtual servers, but is critical on IP-based virtual servers. If there's a possibility that you may eventually move from the former to the latter, then include it as 'inexpensive future-proofing'. It prevents infinite redirection loops and/or invalid redirects if a request arrives at an IP-based server which does not contain an HTTP Host header, leaving HTTP_Host blank.
Also note that 'shared objects' such as images, css files, and JavaScript files are excluded from the HTTPS-to-HTTP redirect, so that they *can* be 'shared' between secure and non-secure pages without throwing 'mixed secure/insecure content' warnings in browsers. The list shown in the RewriteCond pattern is just an example, which you will likely need to adjust and/or expand. The idea is implicit in the use of the word "pages" in each rule's comment line.
I've shown the "secure path" patterns as fully-anchored; These may also need to be adjusted by removing the end anchors or by adding wild-cards to the ends, depending on your exact needs.
Jim