Adding () to the end of a spell name doesn’t do what you think it does - even in WoW’s /macro UI. The first thing Blizzard’s code does is remove the (). How do I know this because I dived very deep into their code to see what it was doing and I call the same functions to interpret the macro line that they do. The difference is GSE shows you what WoW is doing with it.
Adding () to the end of something changes it in programmer speak from a string to a function. A string is like x in maths. It’s a container for a bunch of text like a spell name. A function is a bunch of programming code that is executed and returns a value. Functions are case sensitive so apoc() for example is different to Apoc() and APOC(). In Vanilla you could have functions in macros.
This all changed with TBC. TBC introduced a thing in WoW called the “combat sandbox”. Inside of that are a limited set of functions that can be called in combat. You can call other functions but once you do you move outside of the combat sandbox and can no longer perform actions you go from being able to cast spells to watching spells happen only. These functions are named and defined and if you try to call any function outside of that list that exists can you get an error of “Interface action blocked”.
Underneath the covers the first thing that WoW’s macro stuff does is a pass to remove all function references and convert them to strings. apoc() stops referencing the function apoc() and simply becomes a string containing apoc.
(Note I am using apoc as a shorthand example.)