Я немного поясню свой ответ.
Цитата
Этот вопрос - это обсуждение сугубо не стиля программирования, а вопросов написания кода, свободного от скрытых ошибок, которые потом можно выявлять годами... Стиль программирования - это когда споры идут до хрипоты какой из эквивалентных фрагментов кода "правильный", а какой "ущербный":
Глупости все это, если споры идут...

Я только позволила себе заметить, что не всегда хотелось бы использовать динамическое выделение памяти (через malloc() или стек), особенно в тех случаях, когда без этого можно и обойтись. Ничего против динамического распределения не имею (в порочных связях не состою

). Очень даже понимаю его полезность и что одна из концепций любой ОС - динамическое выделение.
В старые времена (лет 10-15 назад), когда не применялись ОС в embedded системах (широко) и проблема памяти на борту была актуальна (равно, как и быстродействие ПО), тогда и переменные больше были статические (хотя и программы писались на языке Си). Со временем проблема с памятью и Мегагерцами решилась, ПО целевых систем стало тянутся к большей универсальности и воплощения принципов ОС хотя бы на концептуальном уровне (тенденции развития, как при замене Асма Си). Но знать такой вариант со статической памятью не помешает (как альтернативный). Да и не очень прозрачна линия развития embedded программирования (так как тянет это развитие и немного в сторону и без ОС: Java, MЭК на ПЛК, Labview и вся эта компания..., простите за оффтопик).
Пример с возвратом структурной единицы теперь более понятен, спасибо. В последнем примере - "стек и время все равно жалко"

(отнесем это к личному "стилю программирования"

).