It's not clear to me that a separate C++-like parameter pack support and syntax is needed. Why not operate on the passed-in tuple directly, instead?
ISTM that by enhancing meta-programming capabilities in general, but esp. around tuples and arrays*), with individually useful additions, the same end-result could be achieved, and be more flexible in the end.
*) FWIW, I think that for some of the listed use cases arrays would be a better fit than tuples.