I have read documentation for functions such as values and define-values that return and consume multiple values. I understand what they do. It’s not clear to me when you would want to use such a thing.
When would it be bad/impossible to build a single list of values and consume that single list of values instead?
define-values is a convenience that lets you directly bind variables to the results of a expression. It saves you some typing as you don’t have to explicitly unpack a list. I don’t think there are situations where it is bad or impossible to build a single list of values. In fact, that will be more portable than define-values.