Везде можно подключить БД
На фронтенде БД будет храниться в браузере, т.е. этим данным доверять нельзя. В БД на клиенте могут храниться данные, необходимые для оффлайн-работы приложения, например.
можно сделать сайт отдельно на каждом из фреймворков
Вы явно не понимаете про фронтенд и бэкенд. На Django или Flask можно сделать серверную часть сайта. На Angular или Backbone - клиентскую. И никак иначе. Поэтому если приложению нужен сервер - на одном ангуляре Вы его не напишете. Аналогично, если нужна сложная логика на клиенте, джанго тут ничем не поможет.
Почему просто не сделать все на одном?
Как минимум потому что языки на сервере и на клиенте зачастую разные (тот же Python на сервере и JS На клиенте например). Вообще, есть фулстек фреймворки типа Meteor, которые позволяют писать изоморфный код, но как-то особой популярности они не получили насколько я могу судить.