>возвращать указатель на структуру Нет. Не может. И не делайте так никогда.
Либо мы возвращаем что-то по значению mystruct func(), либо мы пишем результат в заранее выделенное выше по стеку func(mystruct *result). Все остальное - не есть гуд.
>более читабельны, нежели все остальное
более того, написать инициализатор большой задачи в RTOS без goto превращается в знатный гемор, RAII в Си нет.