> That's how we get terrible interfaces where the end user needs to be aware of the data model to use it effectively, like Git.

This is only true if you prefer whimsical metaphor over concise description and cleaning up unexpected behavior instead of precisely defining what you want upfront.