An unhygienic macro would be very helpful here:
(define-comparators <prefix> <expr>)
would expand into (with suitable hygienic injection):
(define-values (<prefix><? <prefix><=? ...) (comparison-procedures <expr>))
One could add a variant of the form
(define-comparators (<prefix> = <) <expr>)
where only the comparison procedures corresponding to = and < are defined.
Defining such a convenience macro (which can probably replace every use of `comparison-procedure` in real-world code) has also another advantage: `define-values` is not always being implemented very efficiently. This is particularly true for the sample implementation in the R7RS (which cannot use implementation-specific optimizations). The `define-comparators` macro doesn't have to use `define-values` internally at all.