Is there another way to achieve this?
Boy, you've really gone through and shot down all possibilities haven't you.
If you need to set different directives for different directories, the only way is with multiple htaccess files. Maybe in some future Apache release it will be possible to nest <Directory> sections-- and hence to use <Directory> within htaccess-- but we're not there yet.
But you don't need <FilesMatch> envelopes unless you're setting different time periods for different files
within the same directory. Just use a single line, like
ExpiresByType text/html "access plus 7 days"
or
ExpiresByType image/gif "access"
Your top-level htaccess may need an
ExpiresActive On
if it isn't already enabled.
:: detour to check something ::
The override category for "ExpiresActive" is Indexes (for most directives it ends up being FileInfo). That's good, because there is absolutely zero possibility that you'll be unable to use it. Well, unless your host has inexplicably not installed mod_expires at all, but let's not be ridiculous.