Hi Neil, the best approach to styling & skinning is to use Blend and generate a new template for the SMFPlayer. Here's a video to help get you started:
Regarding #3... great Q! Inheriting SMFPlayer and building plugins are both good ways of extending the default behavior of the player. You can take which ever approach you feel most comfortable with and/or seems most appropriate but here are a couple tradeoffs
to the different approaches:
Inheriting gives access to protected members, plugins do not.
Plugins are arguably better for re-use because any exiting app using SMF could just add your assembly and automatically include your new behavior.
In general, if you are adding a new and isolated behavior to SMF that could be useful in other apps, I'd try to go the plugin route. If you are trying build a super player that is specific to your app or if you NEED access to protected members, inherit.
Hope that helps,