Just for your curiosity, I have tried to do simple setup with one rackspace + 2 variations and one reverb plugin to test this command. The code goes like this:
Var Reverb : PluginBlock
On Variation (oldIndex : Integer, newIndex : Integer)
Var name : String = GetVariationName(newIndex)
path : String = "/Library/Audio/Plug-Ins/VST/"
name == "Default" Do
ReplacePlugin(Reverb, path + "OrilRiver.vst")
name == "Variation 1" Do
ReplacePlugin(Reverb, path + "OldSkoolVerb.vst")
In case of VST and VST3 plugins, ReplacePlugin() really switched between plugins several times and then stopped to do it. In case of AU (Components), there was no reaction.