Honestly I "borrowed" the idea from someone else - but don't ask me from where - I simply stumbled over this approach while searching for solutions.
Besides, this is a small one man project, so "real" branches inside one of the three main branches are not probable. Then again, I don't see why they shouldn't work any more.
For me, this approach works pretty well. The only drawback is that by switching branches, the files/folders in my local repository appear/disappear. So when I switch from software to documentation, the folder "software" and its whole content disappears from my local git/ngen folder, and the folder "docs" magically appears. This feels weird and makes it impossible to work on the local repository for e.g. software and hardware at the same time.
Then again, this is not really an issue for me as my software development folder is not the same as my local repository folder. When I feel I should put changed files in the repository, I switch to the "software" branch, synchronize my development folder and the local repository with "Beyond Compare" and then commit/push from there.