Perhaps if you want the splicing/vanishing behavior, you should use JOIN BLOCK! instead of REDUCE? It also lets you say what target type you want...
I came up with the idea that you could specify the target datatype as the first argument to JOIN, which gives it more flexibility to be "reduce-like" while still doing other cool things:
>> join 'abc 10 + 20
== abc30
>> join word! ["a" if 1 = 2 ["b"] "c"]
== ac
>> join group! [1 + 2 spread [x y z] if 1 = 2 ["x"]]
== (3 x y z)
Allowing you to splice and opt-out of components makes sense for JOIN-ing.
Maybe REDUCE being tailored specifically to the case of "N expressions => N values" is a good separation, because the word "reduce" seems to apply better to that?

I Think I Like This...
Though join block! is slightly more typing than REDUCE, it's 5 more characters:
join block! [...]
reduce [...]
12345
But really I feel like if you are doing something over and over again to where you care about 5 characters, you should be shorthanding or dialecting. At least make it jblk or something.
Note that JOIN could even offer to make splices...
>> append [a b c] join splice! [1 + 2 10 + 20]
== [a b c 3 30]
That's actually a character shorter than:
>> append [a b c] spread reduce [1 + 2 10 + 20]
== [a b c 3 30]
Compromise: Predicates Return SPLICE!, VOID!, or ~(VETO)~
In thinking about how to "override" the behavior, I wondered why there'd be rules constraining a function passed to REDUCE on its result.
>> reduce:predicate [[1 2] [3 4]] spread/
== [1 2 3 4]
>> reduce:predicate [null 1020 null] opt/
== [1020]
So if the predicate function is given the maximum flexibility, it just means that the default predicate function is what constrains things to one-and-only-one item per expression.
Hence the proposed "REDUCE*" would just be REDUCE with IDENTITY as the predicate.
BUT I think it's better to think of using REDUCE with a predicate as an "implementation tool for other things", because otherwise you might get confused about whether any given "REDUCE" is going to vaporize voids or fold in splices.
So rather than put REDUCE* in the box, it's likely better to guide people toward JOIN and think of REDUCE as "its own thing" that actually sees all the evaluations--even COMMENTs.