Really?? Where is b.txt? A "commit -o b.txt" should not remove b.txt from the index, or? The index should always contain all files which should be in the next commit - not only those files which should be modified by the next commit. If we would commit in this state then the next commit would only contain a .txt, and  b.txt would not be under version control anymore. A git log would tell that the last commit has deleted b.txt

I would expect an index containing a.txt and b.txt. I wouldn't even expect that a commit -o changes the index substantially.

Try it out with native git:
git init
echo a>a
echo b>b
git add .
git ls-files --stage
git commit -o b -m only_b
git ls-files --stage
git commit -m both
git ls-files --stage
git log -p