I have the Enterprise version so I'm still wondering which redirection is better to use?
It depends on what you really need. The 301 redirect is client side, so is the web browser that call the URL, receive information on the new destination and change the URL with new one.
The internal redirect, on the other hand, is server side and is totally transparent for user. He never know that the page has a different real URL. Usually this is very useful to create alias (e.g. short and friendly URL).
About second question, this should be a very clever macro...
Jokes apart, this should be first do at matching step (From URL) and this is the second request today to have a more flexible matching mechanism. I'm thinking about some kind of "conditions" to apply after the matching step. If condition fails, the next rule will be considered... it's an interesting feature.
Unfortunately at the moment you can't create a single universal rule, so you should create a rule for each redirect.
Cheers,
Luigi