Nem feltétlenül van egybe gyúrva. Nálunk egy ideig volt dev branch és master branch. A master-be csak akkor merge-eltünk a dev-ről, ha release készült, a dev branch-nek ekkor kellett csak "teljesen jó" állapotban lennie (bár az igaz, hogy törekedtünk a "közel teljesen jó" állapotra minden dev-be menő merge-nél is). A fejlesztések külön feature branch-eken mentek amik a dev-et célozták. Végül arra jutottunk, hogy _nekünk_ nem ad hozzá sokat ez a dev branch és csak lassítja a release-t. Most csak a master van és feature branch-ek, és a master-t igyekszünk mindig release-elhető álapotban tartani, de tényleges release nem készül minden commit-ból, így belefér, ha a master "kicsit törik" (itt leginkább szemantikai törésről lehet szó, bukó tesztekkel, nem forduló kóddal nem lehet lehet PR-t merge-elni).
Szerintem egyébként viszonylag könnyen tartható elvárás, hogy "nagzon törött" kód ne kerüljön a master-re (feature flag-ek, stb), így ha hirtelen kell egy release, akkor azért viszonylag nagy biztonsággal lehet az aktuális master-ből release-elni. Ha éppen flux van, akkor meg az utolsó release tag-ből indul a hotfix, de ez nyílván picit több macera.