2 — из какого источника Вы взяли такие сведения? возможно там проще всего найти и логику такого размещения
3 — могу предположить только что такие сегменты как данные, куча и стек, отбрасываются после исполнения процесса или подпроцесса, в то время как сегмент кода может быть сохранен для повторного использования — такая стратегия очевидным образом уменьшает фрагментацию оперативной памяти