HTTP/2 уделяет большое внимание обмену НАСТРОЙКАМИ перед чем-либо еще, поэтому у меня создается впечатление, что HTTP2-Settings предназначены для информирования сервера о состоянии клиента до того, как сервер даже согласится переключиться на HTTP/2.
Второй кадр SETTINGS, вероятно, относится к однородности, так что после завершения обновления с HTTP/1.1 существует единый сеанс HTTP/2, начинающийся с SETTINGS, тот же, что был бы над TLS + ALPN или через простой HTTP/2 с предыдущими знаниями. Спецификация не говорит, какие настройки должны идти в любом из фреймов, AFAICT, поэтому один из них может быть пустым (что фактически указано в спецификации, раздел 3.5).
Эта избыточность - небольшая плата за оплату: 9 байтов на соединение, по сравнению с осложнениями, которые она перенесла бы, чтобы иметь несколько разные реализации HTTP/2 для случаев, когда есть обновление от HTTP/1.1 по сравнению с случаями когда нет.
Обратите внимание, что, хотя некоторые инструменты фактически будут использовать HTTP/2 через простые соединения, действительно интересные случаи, то есть браузеры, будут всегда использовать TLS + ALPN.