Out of curiosity, why do you prefer JSX to nesting functions? I understand that for HTML you want to meet developers where they are, but that doesn't necessarily apply to other use cases...
function MyThing() {
return (
el(A, {value: 123}, [
el(B, {value: 456, foo: true}, [
el(C, {awesome: true}),
el(D, {awful: false})
])
])
);
}
but there's a reason people prefer JSX syntax