1. It's recommended to just use InnoDB.
2. Yes, it's good to set expiration headers on static content. Usually, around a month for static resources is recommended. For core stylesheets and such, IPS uses a "cache buster" query string any time anything important is updated, so you don't have to worry about old cached content causing issues.
3. Absolutely use opcache with PHP. Even with the default configuration it can make a major improvement in performance.
4. No experience with it personally.
5. Redis can be used to lower MySQL database load on things like view counters and such which are used for both guests and members alike. There's also other cached data that it can use to improve performance. Redis will improve performance primarily if MySQL overhead is high on your server.