The serialEvent() method is NOT a magic bullet. There is NOTHING that serialEvent() does that
if(SomeSerialInstance.available() > 0)
{
}
in loop() doesn't do.
From my understandig this codes "waits" until you send a message.
It does NOT.
When you send a message, the messages get saved, sended back and get cleared.
Saved, yes. Sent back, no. Cleared, no. By serialEvent() that is. The loop() function does some of that.