Почему последний flex-item не сохраняет ширину других flex-item'ов?
Потому что вы позволили item'ам растягиваться - flex: 1 1 150px;
Замените на flex: 0 1 150px;
Таково поведение flex-элементов по задумке авторов.
Вы можете контролировать их размеры в определенных пределах заданием приоритета и т.п. Но их ширину нельзя зафиксировать.