Everything you have written here @Curliuni is completely wrong. Your macro will always compile down to the base spec for each class irrespective of what spec you edit in.
When you edit in GSE you are not editing your macro. You are editing a template from which a macro is created to be executed. Each ability during the save and compile is converted to its BASE ability. For each class this will be a particular spec that is the Base spec. For Hunters its MM, for Priests from memory it’s Disc. For DH’s it’s Havok. When you change spec’s your UI tells you it’s casting BM spells or Vengeance spells - it’s not its casting the same MM or Havok spells under the covers. If your a BM hunter and from the UI you go /cast Steady Shot in the chat window - Cobra Shot will fire.
Why this matters is for spells like Chaos Bolt and Annihilation which have more temporary changes. If GSE didn’t save the base spell and you edited in Metamorphasis your macro would be stuck to casting Annihilation and would only work when you were in Meta. So instead it saves and executes the absolute Base spell and when it executes your compiled macro casts THE BASE spell. As each spec is itself a variant GSE uses the absolute base spell which is why the Compile Template looks to be in the wrong spec. (It also means you could using variables and if blocks write one macro that works for every spec.)