Стек и куча (память)?
почему бы не выделить для него больше памяти?
Действительно, почему бы и нет, учитывая, что эта настройка в руках программиста собирающего (на венде, см. cl /F) или запускающего (в *nix, см. ulimit -s) программу?Стек работает быстрее
А что, уже научились освобождать выделенную на стеке память в произвольном порядке?
Нужно понимать почему стек эффективен. Это не от того, что там как-то по особенному выделили память, а потому, как его по особому используют. 
Там лежать только относительно маленькие локальные переменные. Работаешь ты только с верхушкой стека. Поэтому вся она хранится в кеш памяти. Если кеш специально раздувать (например делать вместо динамических массивов в куче массив на стеке с запасом), он утратит свою эффективность. 
Так как переменные в стеке лёжат подряд, мы не может там реализовать new. А без динамических массивов особо много памяти и не нужно. Выделенного по умолчанию значения обысно хватает на все случаи жизни. Увеличивать стоит только если действительно не хватает. Но это может случиться только, например, при работе с глубокими графами.