Сам разобрался сразу после публикации вопроса, часто так;)
Код ниже был для тестирования, поэтому не обращайте внимания на его несексуальность:
private void MenuItemBlue_Click(object sender, RoutedEventArgs e)
{
ResourceDictionary genericSkin = new ResourceDictionary();
genericSkin.Source = new Uri(@"/Themes/" + "generic" + ".xaml", UriKind.Relative);
ResourceDictionary blueSkin = new ResourceDictionary();
blueSkin.Source = new Uri(@"/Themes/" + "blue" + ".xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(genericSkin);
Application.Current.Resources.MergedDictionaries.Add(blueSkin);
}
И изменить стиль, определенный в "generic.xaml", на DynamicResource
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="{DynamicResource defaultColor}" />
</Style>
Другие предложения приветствуются.