Потому что изначально (да и сейчас) ссылки (т.е. ветки, теги и т.п.) хранятся как файлы в файловой системе (если не рассматривать сжатие). Посмотрите, например
ls .git/refs/heads
Соответственно, если у вас уже есть ветка
frontEnd/bodyStart значит есть папка
.git/refs/heads/frontEnd и очевидно создать файл с таким же именем нельзя.
P.S. конкретно у вас может ничего не быть в папке
.git/refs/heads, потому что в git есть система оптимизации хранения. Но для совместимости ограничение на создание такого рода веток всё равно остаётся для совместимости.
пример
$ ls .git/refs/heads/
master
$ git branch test/head
$ tree .git/refs/heads/
.git/refs/heads/
├── master
└── test
└── head
$ git branch test
fatal: cannot lock ref 'refs/heads/test': 'refs/heads/test/head' exists; cannot create 'refs/heads/test'
$ git branch -d test/head
Deleted branch test/head (was 58084de).
$ git branch test
$ tree .git/refs/heads/
.git/refs/heads/
├── master
└── test