Macro and Expression blocks are special blocks that contain routines. This is used to simplify routine building.
Macro blocks can function as a pipe in a logic flow, whereas the Expression blocks function as a result themselves, and therefore a stop in a logic flow.
This can be easily observed as the Expression blocks do not contain logic gates.
These can be edited by clicking the name in the sidepanel.
A new workspace displays containing the macro or expression which can be edited like any other routine.
The blocks also have further customization options.
More details in the Logic Builder App under Macro Block Settings, here.