Почему размер стека в C # составляет ровно 1 МБ?

Сегодняшние ПК имеют большой объем физической ОЗУ, но, тем не менее, размер стека C # составляет всего 1 МБ для 32-разрядных процессов и 4 МБ для 64-разрядных процессов ( емкость стека в C # ). Почему размер стека в CLR все еще так ограничен? И почему именно 1 МБ (4 МБ) (а не 2 МБ или 512 КБ)?...