FYI Alex have you considered the following:
I think the concept of 'a macro is a script and a script is a macro' is fine. but sometimes things get complicated in different situations. Fex. when in Column mode, overwrite mode, or tab when smart tab is on, or BS when smart backspace is on...same key stroke, but can yield different result.
To deal with such situation, Ultraedit treat macro differently from scripts, and macros are only combination of key strokes. the editor environment (such as column mode on/off, overwrite on/off, etc. anything that may change a key's behavior) when the macro is recorded is listed in the head of produced macros files.
VIM also treat macro and script differently. VIM only record key strokes. This is fine for VIM since every command of vim is a combination of key stroke.
Emeditor's approach is similar to HE. macro is just a script. Fex. it has document.selection.text object for text inputed in insert mode, and document.selection.DestructiveInsert object for text inputed in overwrte mode. But there is no such object for column mode, so macro recording when column mode is on is not supported in Emeditor.
As you can see, trying to interpret every key stroke to a script can be complex from time to time.
Therefore the idea of separating macros and scripts might not be as bad as it sounds. Wsh has WshShell Object that can send keys, such as shell.SendKeys() etc. In this way it maybe possible to have both macro and script to choose from for different situation , using the same Action Script engine.
However this is just for your information

Which style our HE will use, is up to you
