Simple user level syntax and correct spacing.
\documentclass{article}
\usepackage{mathtools}
\usepackage{lipsum}
\ExplSyntaxOn
\NewDocumentCommand{\altcfrac}{m}
{
\projetmbc_altcfrac:n { #1 }
}
\tl_new:N \l__projetmbc_altcfrac_tl
\tl_new:N \l__projetmbc_altcfrac_last_tl
\seq_new:N \l__projetmbc_altcfrac_seq
\cs_new_protected:Nn __projetmbc_frac:nn { \dfrac{#1}{#2} }
\cs_new_protected:Nn __projetmbc_smash:n { \mathrlap{\smash[t]{#1}} }
\cs_new:Nn __projetmbc_lbrace: { \if_true: { \else: } \fi: }
\cs_new:Nn __projetmbc_rbrace: { \if_false: { \else: } \fi: }
\cs_new_protected:Nn \projetmbc_altcfrac:n
{
\tl_clear:N \l__projetmbc_altcfrac_tl
\seq_set_from_clist:Nn \l__projetmbc_altcfrac_seq { #1 }
\seq_pop_right:NN \l__projetmbc_altcfrac_seq \l__projetmbc_altcfrac_last_tl
\seq_map_inline:Nn \l__projetmbc_altcfrac_seq
{
\tl_put_right:Nn \l__projetmbc_altcfrac_tl
{
__projetmbc_frac:nn { 1 } __projetmbc_lbrace: ##1
__projetmbc_smash:n __projetmbc_lbrace: {} +
}
}
\tl_put_right:Nn \l__projetmbc_altcfrac_tl { __projetmbc_frac:nn { 1 } __projetmbc_lbrace: }
\tl_put_right:NV \l__projetmbc_altcfrac_tl \l__projetmbc_altcfrac_last_tl
\prg_replicate:nn { (\seq_count:N \l__projetmbc_altcfrac_seq + 1) * 2 - 1 }
{
\tl_put_right:Nn \l__projetmbc_altcfrac_tl { __projetmbc_rbrace: }
}
\tl_set:Nx \l__projetmbc_altcfrac_tl { \l__projetmbc_altcfrac_tl }
\tl_use:N \l__projetmbc_altcfrac_tl
\hphantom{\seq_use:Nn \l__projetmbc_altcfrac_seq { + } + \l__projetmbc_altcfrac_last_tl }
}
\ExplSyntaxOff
\begin{document}
\lipsum[1][1-4]
[
A=3+\altcfrac{7,15,7,4}
]
\lipsum[1][1-4]
\end{document}
The idea is to build the whole series of
\dfrac{1}{7\mathrlap{\smash[t]{{}+\dfrac{1}{15...
step by step. The braces are hidden in macros that expand to them, but we expand only after the whole structure has been built.
Next we add a phantoms to take care of the width and it's sufficient to sum the denominators.

\cline{3-3}\noalign{\vspace{-2pt}}? – David Carlisle Nov 08 '22 at 17:54