Because in DNC it uses one line of data at a time. It cannot go back to the beginning of a loop or a macro if it has already been read through.
It is not kept in memory to be referred to..
Loops and macros are used to make big programs smaller to fit in a control's memory. DNC makes this irrelevant.
Sorry, just the way it is.