Ah, it wasn't list, it was append. Though list would be fine if each mixin contributes no more than one item, I wanted mixins to be able to contribute more if necessary, so they always return lists which the combination appends to the result. It also allows them to decide to return nil and behave as though they were not called at all.
Here's a suitably abstracted implementation of the idea: https://gist.github.com/spacebat/dbad3b50684b3a516071abb3757...
Yes I am likening RPC programming to dealing with monsters in the darkness.