This is nice! I would suggest refactoring the serial backend so that we can enable this with -fexperimental-library sooner rather than later, maybe after stamping out a couple more algorithms just to confirm there are no unknowns.
Can you please make sure you have tests for all nodiscard extensions you're adding?
I suspect we might end up removing those, but until then, we should keep the code self-descriptive.
Let's be explicit about the type when we pass it. We can remove it later if not needed.
Let's return auto const& instead, this is kinda confusing for no benefit.
Let's test on a few sizes of sequences: 1-element, 2-elements, and more than e.g. 100 elements. Not to test the backend itself (which will require its own tests per our discussion), but to test the interaction between the "front-end" of the API and the backend.