Да, верно понимаете. У IAR и у FreeRTOS - у каждого свой heap. Если вы собираетесь выделять динамическую память только средствами ОС, можно смело поставить в настройках линкера размер heap = 0.
Со стеком немного сложнее. Есть стек, память под который выделяется линкером. Его отключать нельзя, иначе не сможет работать ОС. И плюс еще у FreeRTOS есть свой стек, точнее набор стеков, для каждого таска свой. За их размер отвечает параметр configMINIMAL_STACK_SIZE в конфиге. Кроме того, при создании таска размер стека для него можно переопределить.