... all to fit data in a few kb of stack space?
With the large numbers of beginners on this forum, the simpler structures/concepts are far more effective than complexity. Relatively advanced topics are, imho, not for people that often struggle to make 2 LEDs blink (as interesting as the discussion may be for subject matter experts).
I have been programming Arduino for about a year now. I have a background in real time programming under Unix, Windows, and VMS, using C mostly. In my experience, the fewer layers between hardware and software, the more understandable things are and the more reliable the (real-time) result.