可能ですので、元の質問に出くわした人のために解決策を投稿しています。
修正は、MyCompany.Controls.dll アセンブリ内の各カスタム コントロールの ResourceDictionary に目的のスタイルをマージすることです。XAML でこれを行うことはできませんでしたが、各カスタム コントロールのコンストラクターに以下の呼び出しを追加するだけで済みました。
this.MergeInResources("/MyCompany.Styles;component/default.xaml");
魔法を行う拡張メソッドは次のとおりです。
/// <summary>
/// Loads the resources pointed to by the (relative) path
/// <paramref name="resourcePath"/> into the Merged Dictionaries
/// of <paramref name="control"/>.
/// </summary>
internal static void MergeInResources(this FrameworkElement control,
string resourcePath)
{
if (String.IsNullOrWhiteSpace(resourcePath))
throw new ArgumentNullException("resourcePath");
Uri uri = new Uri(resourcePath, UriKind.Relative);
ResourceDictionary dictionary = (ResourceDictionary)Application.LoadComponent(uri);
control.Resources.MergedDictionaries.Add(dictionary);
}
エラー処理と ResourceDictionary キャッシュ + 共有は読者に任されています。