It depends on what you mean by premium content? Is the code itself is the content (i.e. you are selling the app source code)?
If you mean that the code is for premium features in a app, then it doesn’t matter that it’s sent to the client even to non premium members. How would they use it? Presumably the code would be performing interactions with the server. The server is responsible for checking if the user has the right to do what they are trying to do (i.e. are they a premium member?). If they don’t have the right, then the server sends back an error, and thus, the premium code is useless to non premium members.
If the code itself needs to stay secret, then you put it in /server (which is not sent to the client). You can create Meteor methods in /server and call them from the client. For CSS, that makes no sense because it needs to be public in order to be used.
For displaying different themes, if you put the theme CSS files in /public/themes, I think you could do something like:
<link href="/themes/{{themeName}}.css" rel="stylesheet">
I’m not 100% sure that would work, but I don’t see why it wouldn’t. (maybe you already have it working)
Probably a better way to do it (unless the theme files are very large) is just load all the themes together, and make their styles have a parent:
.darkTheme .button { ... }
.lightTheme .button { ... }
Then on in your HTML you can have a parent div that wraps everything else and apply the theme class to it:
<div class="{{themeName}}">...</div>
If the themes themselves are the premium content, you could do something like:
<style>
{{themeCss}}
<style>
The themeCss could be stored in the database or read from a file on the server and sent down to the client only if they are allowed to access it. That would be a pretty weird case though.
PS: To control file load order, you can put your code in packages. In each package there is a package.js file in which you describe which files to load, and in what order.