At least some users want to indent macro output: https://answers.atlassian.com/questions/239977/answers/18812543?flashId=-307643035
Therefore, macros should not produce an automatic linebreak before the actual macro output, but they should use the indent of the "current cursor position", where the macro is positioned.
That way one could simply add spaces before the macro to get indentation.
Moreover, I've often wanted to have some macro output midst of a text or to the right of a text. Also that would then be possible.
An alternative or additional solution would be to produce macros "Inline" and "PositionHere".
"PositionHere" macro would position its contents as if the top-left of the page would be the "current cursor position. (So people could place their Code Block or Page Tree into that macro, which could then be indented or to the right of some text.)
"Inline" macro would start the macro output at "current cursor position" but at the right end of the line (and at any linebreak) it would go on from the left. (Even if another macro such as Page Tree inside the Inline macro tries to produce its output as a separate paragraph.)
Thus, "Inline" means simply "Start macro output here as any other text" (or "indent just the first line, to this point", whereas "PositionHere" means "also indent every following line this much"). That would be great for, e.g., using include or Excerpt Include in the middle of a paragraph.
If the panel macro would have an option for left margin and/or left padding, that would be* exactly the "PositionHere" macro *(once you make border and background white), provided that there are also top and bottom margin options (I would set them 0). Then it would be just a box in the middle of the page without additional margins.