Для начала хочется пару общих слов относительно Flux, все будет зависеть от реализации это архитектуры, то что предлагается непосредственно FB слишком многословно получается и, забегая вперед, возможно с этим ассоциируется многословность из пункта 4.
В своих проектах на React я использую реализацию
Refluxjs одна из самых популярных альтернатив к FB.
Свои ответы построю как сравнение между реализацией FB и Reflux
1. По классической схеме да нужно хранилище для этого флага, в Reflux диспетчера центрального нет и события получают только реально заинтересованные слушатели, поэтому такие вещи можно упростить и слушать просто выброс события типа
mixins : [
Reflux.listenTo(AActions.toggleOpen, 'onToggleOpen')
]
в котором просто сделать setState с новыми параметрами, если компонентов которые должны будут слушать станет больше одного можно очень легко отрефакторить на хранилище, благодаря миксинам для хранилищ создание хранилища можно уместить в пять строчек кода.
2. Идея вторая более правильная, и именно в таком виде ее можно реализовать в FB, для Reflux один стор может слушать изменения в другом и соответственно может при необходимости изменять свое внутреннее состояние с возбуждением события
3. Не обязательно вьюха, просто код который инициализирующий сокеты, для классики это SERVER_EVENT, в Reflux можно прямо в качестве хэндлера события можно экшн навесить
4. Все зависит от реализации ;) для меня связка React+Reflux+Immutable помноженное на чистые функции очень лаконична и читабельна