I 100% agree with you on this. This was the biggest oversight the original team made. They were going to make pre and post hooks, but at the last minute decided that pre hooks would slow down the mutation, closed out the issue as if completed and resolved, having only added post hooks. Nobody cared about post hooks.
All mature databases have both, unless there is an easy way to rollback data. SQL has pre, post, and instead of hooks. Ask me what neo4j has.
However, we are talking about the GraphQL layer here, so I guess we can give them some slack.
This would solve literally all my mutation issues by allowing me to write my own work around.