Don't know about anyone else, but just reading the post gives me a headache. Right now you seem to have
-- all-purpose default
-- some cache headers that give a
longer time than the default
-- some other cache headers that give a
shorter time than the default
# Preserve bandwidth for PHP enabled servers
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>
... and there's another peril of the <ifmodule> envelope. What if your host has surreptitiously gone to php5 when you weren't looking? Some hosts are skittish about disclosing the exact apache number, but you should know what php version you're working with and write the code accordingly. It's only for your own site, right? So you don't need any hypothetical <ifmodule> options.
Incidentally: unless you've got a really ancient Apache installation, you can write all those times in English, like "access plus 2 hours" or "modification plus 3 days". Makes it easier to read later on.
If your subdomains are physically located inside/below your primary domain, then anything in the top-level htaccess should apply everywhere. But the topic header implied that your special caching rules are only meant to apply in the subdomains. If so, you might be better off putting them in separate htaccess files.
My own only venture into cache restrictions is limited to a single directory containing a handful of gif files, so I don't have any personal experience to buttress and/or modify what Apache says. I just know that it worked a treat once I'd got the wording exactly right.