Yeah that's what grates me about Git: apparently, unless you're willing to learn all of it from the implementation details up (which I am not as I have absolutely no interest in implementing my own DVCS) you will forever be limited to rote-learned "recipes" because the command-line interface makes no sense in and of itself, it only makes sense if you understand how it relates to Git's implementation details.
I'm sure somebody will chime in with "well make your own CLI then" or "other people have built new porcelains and they have not taken off". Of course that won't work, for two reasons:
1. To build my own porcelain, I'd have to learn all of Git's implementation details. See above
2. People who build their own porcelains have to do it as well, and by the time they're done learning... they don't need a separate porcelain anymore. They might not even realize why they were trying to do it in the first place. And so they leave their project in a mostly-broken state and go on with their life, and the next guy comes around and builds his own from scratch.