I would like this feature as well, and the irony is it would be easy to do. If my templates are main1.dwt.php and main2.dwt.php, you already name the themes main1 and main2, so that is the only value you need to dynamically set the theme. In other words, the file naming convention is already there, but it cannot be utilized fully because of this limitation.
In the meantime, it can be done by applying the static theme behavior and changing the theme code in the head of the document like this:
if("" == ""){
$WA_main_dwt_1363236073760_Content_Empty = "";
$WA_main_dwt_1363236073760_Content = new WA_Include(__FILE__);
$WA_main_dwt_1363236073760_Template = new WA_Include("Templates{$WA_main_dwt_1363236073760_Content_Empty}/{$template}.dwt.php");
require($WA_main_dwt_1363236073760_Template->BaseName);
$WA_main_dwt_1363236073760_Template->Initialize(true);
}
Keep in mind that the themes have to have the same editable regions using the same name, and that if {$template} does not point to a valid theme, the page will be broken.