I am not sure he is really looking for exactly reverse engineering them but more to simply get an idea of what they do.
If you look at the #value[] or #abDC[] macros they are pretty basic in what they do. Just a short hand of writing hero.child[].field[abDC].value. The confusion comes in when you try and use #applybonus or #applydr as they do a set of logic that only applies the largest value. That is a bit confusing if all you have seen is comments for #value[] macros. I know I screwed up the use of these at first.
I think it goes back to that as users we are "blind" to the inner working of HL and this is especially true of macros and procedures. Why I agree that they are needed knowing what they do is also needed for editors to know "when" to use one.
I know your very helpful Mathais but the issue is you get to "see" everything and work with HL day in and day out. You basically live and breath it. As editors we don't and often see HL in places as a black box. You put something in and a something comes out. But what happened in the box is all magic as far as we know.
I know I have said this before and I have not had time either but we need something that lists ALL these things and explains what they do.
Honestly we need something along those lines for HL.
Sorry this gone in a different direction but my point was that its not as easy as you think to figure out what is going on in the background of "HL" when building scripts.