На самом деле суть в том, что если rem указывается для корневого элемента, то для расчета значения используется initial value, которое в большинстве браузеров равно шестнадцати пикселям, что мы и видим в примере автора вопроса.
Во-первых, потомкам флекс-контейнера в принципе не важно задание display, они всё равно будут флекс-потомками.
Во-вторых, задание марджина в пикселях и в процентах во флекс контейнере ведут себя по разному. Это нормально.
В-третьих, где пример?
На самом деле суть в том, что если rem указывается для корневого элемента, то для расчета значения используется initial value, которое в большинстве браузеров равно шестнадцати пикселям, что мы и видим в примере автора вопроса.