I know Rewrite is on as there is other simple redirects in there and W3 cache rules, gzip and want not
Do any of them use mod_rewrite? Of course you've got it installed; that's not the worry. But unlike most things in Apache it isn't inherited. You have to turn on the RewriteEngine in each separate htaccess that uses it. Your "simple redirects" may be using mod_alias ("Redirect" or "RedirectMatch" by that name rather than "RewriteRule...").
it would be more efficient if you could make the pattern in the RewriteRule more specific.
I don't think he can. He's redirecting entire subdomains. So unless each one has its own unique set of directory names, you can't do much in the Rule.
Although come to think of it: Do the subdomains contain anything besides pages? Images, stylesheets, scripts and so on? If not, you can constrain all your RewriteRules to requests in / or .html (or whatever your extension is). In fact even if there did use to be other stuff in the subdomains, I can't imagine you'll get a lot of independent requests for them. So you can say something like
RewriteCond %{HTTP_HOST} !^(www\.example\.com}$
RewriteRule \.(css|js|jpe?g|png|gif) - [G]
throwing in all your non-page extensions, and give them a generic Gone.
Still, 100 separate sets of redirects. You are probably better off detouring via a php script which feeds in the information. Then your htaccess will just say something like
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteCond %{HTTP_HOST} ^\w+\.example\.com
RewriteRule ^(.*)$ /fixup.php?$1 [?]
where [?] means that g1smd or someone like him is going to come along and explain how you rewrite to a different host-- in this case to your primary domain instead of the requested subdomain-- without having it turn into a redirect. You don't want to end up with two redirects if you can help it.