It's not hard, but it's one of those tools where the user has to think about how the tool is implemented.
Even if the abstractions get leaky, people yern for goal/workflow oriented UX.