Right now, sending a message involves, at the very least, five transactions, two item creations, and two item deletions. For its main purpose this is a perfectly acceptable cost, but there are other reasons you might want to send a message between users than to queue a change to persistent state. For example, you may want to send a progress notification to some UI element; if the user viewing that UI element is no longer logged in, you won't necessarily care that the message doesn't get there. However, you might not want to use the existing API for something lightweight like that, due to its costs.
There should be an API which serves this sort of use-case with as little database interaction as possible; in particular, no items should be created or deleted.