Do it this one time and you will prove to yourself that serialEvent() is not an ISR. If you allow loop() to end then you allow the function call to serialEvent().
It is a valid ISR; it was running well a while ago; now, it is not running because the interrupt logic has been disabled either by the user or by the non-standard instructions appended later.
Insertion of for(; ;){;} within loop() function prevents the MCU from entering into the serialEvent() function (tested). Will the processor be responding to hardware (INT0/INT1) interrupt -- to be tested soon?
In one hand the human mind tends to remain attached with its thousand-years old traditions; on the other hand, it wants to be fully nourished with the flavor of the current ideas, economy and technology; the poor fellow/boy is in a great dilemma -- an exit tunnel can only be created through the acquisition of Intellectual Knowledge in contrast to Transmitted Knowledge.