but I would like to set things up so that users see the registration fee separately. How can I achieve that?
You should be able to use the Tax plugin to do this as you can apply different fees using it. They of course can be named whatever you want so it can show "Registration Fee" in the basket if you like.
- How can I introduce discounts for advance payments? Subscriptions are billed monthly by default, but I would like to offer discounts to those who choose the pay 3, 6, 12 months in advance.
You'd need multiple copies of your plans then have the 3 month for example discounted. Best approach is to setup your plan how you want it then use the Copy feature and change the price and duration. The user can then select their durations.
- Does the content restriction plugin support K2?
No, but you can protect K2 using By URL Part protection quite easily.