I believe behavior is well-defined because of 8[dcl.decl]/3
Each init-declarator in a declaration is analyzed separately as if it was in a declaration by itself.
Which is even additionally explained in a footnote as
A declaration with several declarators is usually equivalent to the corresponding sequence of declarations each with a single
declarator. That isT D1, D2, ... Dn;
is usually equvalent to
T D1; T D2; ... T Dn;