Использую по мере необходимости. Чаще всего причина это или
сторонний код использующий динамическое выделение (TCP-стек,
например) или обработка данных в заранее совершенно неизвестном
количестве (на столько, что не получается просто сразу заложить
максимум). Пришлось добавить блокировку одновременного обращения к
malloc из разных потоков и избавиться от тех сторонних библиотек,
которые вызывали утечки памяти Ну и динамическое создание объектов классов, нужных именно в выбранном в настройках режиме работы бывает крайне полезно.