While there are definitely UX problems, the following aren't:
- needing to memorize branch names for easy use: there is tab completion for this;
- differences between staged and pushed commits: I'm not sure what you refer here. the closest concept to the "stage" term is "staged changes". this is by design; the idea is that while one applies changes within a single commit, some are definitive, some are evolving; for this workflow, it's very convenient. if one doesn't want, they can just add all and commit (preferrably, with a single alias ;-)).
The "most extensive" Git UX problem is possibly the excess of functionality given to the `checkout` command, which in fact is being split.
(I don't imply that Git UX is good, though)