Если программа написана на Лиспе или ML, или другом языке где менеджмент памяти полностью автоматический (и нету возможности делать malloc напрямую), и происходит автоматическое контроллирование доступа к массивам (извините, русского тех. слэнга не знаю, поэтому получается так длинно), то возможности переполнения (при корректной имлементации, конечно же) буффера просто не существует. Это не костыли. Просто мало п/о написано на ML например (имхо это плохо; whatever).