In this case, when I push a lot of code in VOID LOOP(), it will decrease perfomance.
But what else will the processor be doing if not looping? If it's not sleeping or crashed it's looping somewhere.
And I thought, that interrupts is the best way to receive data from COM,
In the Arduino environment serial characters are already received using interrupts. The fact that you can write
if (Serial.available() > 3)
means that characters have been received in the background. And while it is possible to write code specific to an application that is more efficient that would require a reasonable amount of programming skill.
Interrupts can make code easier but for novice programmer they are also a source of much trouble, also technically
interrupts are LESS efficient than polling as the overhead for an interrupt is quite high.
So in general I would say that interrupts are not worth it, but if you have a specific example maybe.