You can commandeer this solution: https://stackoverflow.com/a/7349521/737023 - this isn't exactly what you want, but lets say your theme 1 is using swatch a,b,c,d,e - create your 2nd theme and use the swatches f,g,h,i,j (may need to concat the two CSSs and do some replaces?) - then use this solution to swap all a's to f's, b's to g's etc... Of course this would only support I guess 5 sets of 5 swatches?
OR
Just don't use AJAX loading, data-ajax="false" if there's separate sections of your site that need a new theme, ensure all links to it don't use AJAX and just include the new CSS in the head
OR
If you really wanted to get fancy and you needed more themes, from what I know there is no pretty solution for this I think, to start if you include your CSS within your div[data-role="page"] tags that will get pulled in with the AJAX load and initialized to work.
If you're talking about having different themeroller swatches for the a,b,c.. etc values on every page, I don't think that's possible without getting really ugly. jQM loads the <head>
only once, subsequent pages are loaded via AJAX.
Even if you included the CSS in those pages you'd have no way of getting rid of the original CSS classes. So then you'd need to extract out the styles you need, add it to a unique class for each page and use the !important flag to overwrite jQM's styles.
jQM also uses data-theme="x" to make DOM manipulations, wrapping things in spans and such, you'd need to do a lot of work inspecting all elements to see what classes/styles you need to overwrite. But I suspect it to be possible - you may even need to handle some things via JS, e.g. find a <ul data-role="listview" class="myCustomClass"> and add your custom classes to dynamically generated DOM