A) Да, конечно, это цель pthread_attr_setstacksize
.
B) Да, вызов pthread_detach
или pthread_join
заставляет ресурсы потока быть восстановленными после завершения.
C) Теоретически да, но поскольку в большинстве систем стек растет назад (от высокого к низкому адресу), вам необходимо выполнить какое-то переполнение буфера, чтобы выйти из текущего пространства стека.