To clarify the code further, add a blank line after every Rule (after every Rule, not after any of the Conditions), so you have 8 separate Rules (some of which also have one or more attached Conditions).
Yes you need a Condition to test THE_REQUEST before each of the rules that deals with index.php requests. Rules 2 and 3 each need this extra condition.
Rule 4 doesn't need .php in the rule target.
Rule 4 also needs a Condition the same as the Condition in Rule 5.
You've already caught on that the last rule, Rule 8, is pretty much redundant. :)