Yes, in general that is the thing to do. However, I will say that we really don't use the theme.skin file for much so in some cases you may not even need to do that unless you see a problem. I've avoided using theme.skin because if you use themes to set style properties the result is that inline styles are generated in the html which makes the page heavier. So I mainly use CSS for everything and theme.skin has only a few different versions across all the skins. There is one technique where I use the theme.skin file for enabling corner rounding where we write some extra divs into the page to create corners with. The corner rounder control that writes the divs is always in the page but in skins without corner rounding we disabled it from theme.skin just to avoid the un-needed extra markup being rendered. So in skins that do use corner rounding css the theme.skin has this:
<mp:CornerRounderTop runat="server"
DoRounding="true"
/>
<mp:CornerRounderBottom runat="server"
DoRounding="true"
/>
whereas in others this is set to false.
Note that the inclusion of the extra divs is not sufficient ther eis css applied to those divs to produce the rounded corners, so just setting this to tru will not create rounded corners, it just creates the divs we need so css can do it.
Off the top of my head thats about the only thing I "think" will really be affected much by the theme.skin file, so in practice you may actuially be able to change skins and not always have to copy the theme.skin file, but once you've really settled on a skin its probably best to do so.
So, in fact its really actually probably possible to host multiple sites in medium trust (with a fixed ip), the main conflict will be if one of them wants corner rounding and the other doesn't because theme.skin is shared by all sites since the VirtualPathProvider doesn't work.
Hope it helps,
Joe