Hola, lo que pasa es que al momento de hacer programas grandes o comerciales, esos desbordamiento de buffer pueden ser un problema.
Cuando estaba aprendiendo esa parte de C mis profesores me enseñaron las funciones basicas de string.h como gets(), función que tiene ese problema posible desbordamiento. Lo que sucede es que cuando estas aprendiendo esas cosas no viene mucho al caso preocuparse AÚN, porque estás aprendiendo los conceptos iniciales. Con el tiempo, vas puliendo lo aprendido y ya puedes empezar a preocuparte por esas cuestiones.
Existen un grupo de funciones de string.h que pueden ser reemplazadas por otras más seguras, que hacen que el software sea más confiable y seguro.
Este post te puede ayudar mucho, luego si quieres saber más, puedes buscarlas en un manual de referencia ANSI C.
https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html