[
It is not.
It never was.
This is the hypothesis to begin. It should be well understood why the serialEvent() is a SUR and not an ISR through the validation of the very basic definition of a SUR. This is what @adwsystems is trying to establish by performing various kinds of experiments. A SUR has a name, and it is called upon from the mainline program by uttering its name. From the loop() function, we never execute the serialEvent() function by calling its name -- serialEvent(); but, we declare the same as void serialEvent(){} and not as ISR seralEvent(){}.
Because, someone has experienced/told that the serialEvent() is a SUR; so, it has to be taken into account as a final verdict -- this is a kind of knowledge what the sufi philosophers like William C. Chittick and others have termed as Transmitted Knowledge. Transmitted Knowledge is the required foundation knowledge based on which we can arrive at the Intellectual Knowledge that eventually reveals 'why things are like these' -- why serialEvent() is a SUR and not an ISR and vice versa?
serialEvent() is a function that has not descended from the heaven; rather, it has been designed by the Arduino Developers. Therefore, someone will soon put forward solid arguments/evidences in favor of saying that serialEvent() is a subroutine indeed or the reverse!