Considering what is said in the documentation about RewriteCond, and what you get, I'd say that the RewriteConditions are only applied to the one RewriteRule that follows :
The RewriteCond directive defines a
rule condition. One or more
RewriteCond can precede a RewriteRule
directive. The following rule is then
only used if both the current state of
the URI matches its pattern, and if
these conditions are met.
What if you try duplicating those RewriteCond in front of the second RewriteRule ? At least as a test ?
And here is an interesting thing about the S|Skip flag. Amongst other things and an example, it is said :
The [S]
flag is used to skip rules
that you don't want to run. This can
be thought of as a goto statement in
your rewrite ruleset.
And also :
This technique is useful because a
RewriteCond only applies to the
RewriteRule immediately following it.
Thus, if you want to make a
RewriteCond apply to several
RewriteRules, one possible technique
is to negate those conditions and use
a [Skip]
flag.
I've never tried this, but it might be useful, in your situation... maybe ^^
Still, it's some part of the Apache's documentation that seem to indicate what I said earlier is right.