The way i've looked at this is that there isn't actually any decompiling or reverse engineering of GMs own internal code, it is simply the addition of code, in much the same way as a DLL would work. There was even a thread
https://forum.yoyogames.com/index.php?threads/get_function_address-function_name.42745/ discussing the ability to re-add
get_function_address() which would allow you to achieve exactly what this little trick does, only via a DLL. As Russel mentioned (and as I had said about where threading could break things) is that you have to consider the context for certain function calls.
When looking at this threading extension and consider it only from an algorithmic point of view, that is, using it to simply perform tasks without extensive use of internal GM systems, is it effectively the same as if you were to write the code in a DLL. However, for the sake of efficiency, we can bridge that gap.
I also made this topic a few months ago:
https://forum.yoyogames.com/index.php?threads/custom-c-code-in-yyc.4612/ which was to facilitate a means of systematically integrating your own DLL code directly into the exe so as to avoid the overhead in the DLL function call, yielding huge speed ups.
When looking at the sorts of code you are working with, in both cases, the only code being modified is the C++-generated version of MY OWN gml code. The fundamental way GM works isn't being changed, only the code that is built, therefore I would assume that this isn't really reverse engineering. Everything I have discussed in these topics CAN and HAS been achieved with DLLs, however, DLLs make this process less efficient and hard to work with.
What I think would be an interesting end-goal is if the conversation in general could perhaps motivate an improvement for the GM extension system to support native extensions (that is, extensions with code that can be directly integrated into your compiled project, rather than having to separately link through a DLL). If it is possible for us to make these things work without any major fundamental change to GameMaker, other than a few lines of C++ in the right place, it stands to reason that an overall system like this wouldn't be ridiculously difficult to implement. It is a shame however that there cannot be more windows-specific functionality, as I feel that is one of the major barriers to progression. Perhaps its to do with my lack of mobile perception, but I generally feel that Windows is the most dominant platform when it comes to use of GM, both for fun and commercially.