Все равно недопонимаю проблематики. Можно внутри компонента преобразовать наш плоский массив, в удобоваримый для рендера, опционально положить его в useMemo. Да пожалуй можно сразу траверсить не в raw структуру а в jsx и положить в тот же useMemo.
Но такие кейсы скорее исключения, чем правило. Я бы даже в угоду однообразности не траверсил сразу в jsx. (хотя кого я обманываю🌚 я бы преобразовал данные за пределами реакта, реакт у меня сразу и всегда получает "удобные" для него структуры)