I've decided to post this question and self-answer, since this might be useful to others wishing to do the same thing.
I was wondering how to obtain non-null output from all parts of a compound expression. By default, only the result of the last part of a compound expression is output, for instance:
fun1[expr_] := (expr + x; expr + y; expr + z) fun1[a]
fun1p := (# + x; # + y; # + z) & fun1p[a]
One could use Print (or Echo)...
fun2[expr_] := (Print[expr + x]; Print[expr + y]; Print[expr + z]) out2 = fun2[a]
...but the output has Null content:
One gets the same result using Print with a pure function.
There are workarounds, but I sometimes find it syntactically convenient to obtain the outputs directly.
Note: This is not a duplicate of Compound Statements and returning earlier results in () parentheses , since there the OP was looking to Print the results (which displays the results, but has Null content), while I (as explained above) want to actually get the results (such that I could assign them to variables).