Consider the following
bool ApplicationCommandTarget::tryToInvoke (const InvocationInfo& info, const bool async)
{
<snip>
messageInvoker->postMessage (new Message (0, 0, 0, new ApplicationCommandTarget::InvocationInfo (info)));
Who deletes the allocated InvocationInfo?
It goes to MessageManager::instance->postMessageToQueue which then goes to juce_postMessageToSystemQueue which then calls customEvent.
void MessageManager::deliverMessage (void* message) deletes the Message but not the pointer.
I might just be paranoid!