It is self-evident that you may have your entire construction within one single macro. But the maintenance of a macro containing several hundred commands is not very easy.
It is recommended to separate the construction to create into its parts and to use a homogenous hierarchization within the different macros.
Should a frequently appearing part of the construction be subject to change, it is sufficient to adapat a single macro to receive the new configuration.
You are creating a part for example that contains several borings. Instead of directly filing the commands for the construction of the borings within a loop it is better to call another macro, which constructs the boring. Should the user then decide not to construct the boring directly, but to position a red-file, it is sufficient to change this macro. The modification then is relevant for all constructions with this boring.