This patch attempts to fix 41643 by providing two __make_from_tuple_impl overloads. I am not sure if this is the best way to implement this (and I especially don't love __is_rvalue_tuple) so I am waiting to update tuple_cat (and possibly others) until this patch gets a green-light.
As mentioned on llvm.org/PR41643, this isn't a bug in libc++. We implement the standard as specified, and we can't change the required behavior of <tuple> without also changing the standard.
This change cannot proceed.