Actually, that is exactly the point - Git can be used in ways that obscure history. That is why correct and uniform use are important in a project.
As for your question -look at the graph again. fixA was NOT necessarily committed on featureB. Very likely it was not. But it looks that way, due to the way Git manages branches.
Yes; I find this one of the frustrations of git. Sometimes I want to know the larger context around a specific commit, and the commit message does not provide that. Commit messages are, in my experience, good at describing what, and maybe a low-level why, but not a high-level why. Knowing branch names is a good way to find out a high-level why.