Access controls first.
Redirects next. Within the list of redirects, most specific first, most general last.
Rewrites last. Within the list of rewrites, most specific first, most general last.
Most specific means affects the smallest number of URL requests. Most general means affects the largest number of URL requests.
Your existing rules 1 to 6, should be re-ordered 6 - 4 - 5 - 2 - 3 - 1 and a question mark added to the redirect target of at least the first five rules.
I would not redirect all query strings to the root. I would strip only the query string from the original URL and redirect to that.
See also: [webmasterworld.com...]