フロントエンド先行、特にSPA方面へ行くならば分離した方が良いでしょう。
これはマイクロサービスの考え方で、責務を分離させて粗結合にした方が後々楽です。
単純に別々のリポジトリ管理で別々のタグを打てますからね。
バックエンドだけ不具合で速度が出ない時にバックエンドのバージョンだけダウングレードするけど、
フロント側は最新のデザインで運用するという事も可能です。
逆も然り、フロントでレイアウト崩れが出たらダウングレードしたいでしょうしね。
他にも例えばフロントもバックエンドも全てNode.jsでやっていたとして、
負荷が増えてきたから一部のエンドポイントをGo言語に切り出そう!みたいな話になることもあります。
同じプロジェクトの場合はもう無理というか大混乱になります。
そして更にこのエンドポイントだけは機械学習の成果を使うから、
Pythonにしなきゃダメなんだよ!!という要件も追加で出たとしましょう。
どうすんねんって話になります。
プロジェクトを分けていればかなり楽な話になります。
リバプロとしてNginxに80番ポートを使わせます。
そこからHTTPリクエストのパスを解析して、
フロントエンド配信用のNode.js、バックエンドNode.js、Go言語、Pythonに中継する。
まぁ、そんな要件99%ないやろな例え話ですが、
サイボウズのさようなら ImageMagickにこのような事例が載っています。
切り札の一つとして抑えておくと、デモデモダッテに囚われない発想で問題を解決出来るかもしれません。
まぁ、最初からRubyのRoRでやるんだとか、
PHPのLaravelでやるんだとか
企業の都合等で特定のWebフレームワークで完結するとわかりきっているプロジェクトの場合、
リポジトリを分けるメリットも殆どないと思います。