Because Strobe encodes the operation, doing two meta-AD operations is
different from doing one meta-AD operation with the concatenated data.
Other Strobe implementations, such as the one internal to the Merlin
implementation in Rust, support a "continuation" flag that indicates
that some data is a continuation of a previous operation, rather than a
new one. However, StrobeGo does not, so the previous code was doing two
separate operations. This code may do more allocations than necessary,
as I have never understood the semantics of Go slices.