The carry does not have to walk. For each bit define two signals: generate g = a & b (this bit makes a carry no matter what) and propagate p = a ⊕ b (this bit passes a carry through). Then every carry is a formula in the g's and p's — ci+1 = gi | (pi & ci), unrolled — so all carries can be computed in parallel, in logarithmic depth instead of linear. The answer is identical to the ripple's; only the time changes. It is the idea under every fast adder in every CPU.
The demo computes the same 11+6 via generate/propagate — same sum 17, carries in parallel: live demo
“The carry must ripple.” — generate/propagate turns every carry into a parallel formula, so the whole width resolves in log depth. The answer is the same; the wait is not. cited
Say which bits make a carry and which pass one, and every carry is a formula solved at once. Same sum, log-depth wait. Weinberger–Smith 1958
On the canonical compiler, generate/propagate adds 11+6=17 — the same answer as the ripple, carries decoupled: