Title says it all :).
But, let me expand a particular case.
So, far I have studied system calls that all require some interaction from hardware (like read(), write() etc.) so it makes sense to switch to kernel mode before executing those system calls (trap instruction).
Signals as I understand is purely software constructs meaning they are not directly generated by hardware (unlike interrupts). I understand them to be a message passing mechanism between processes (either kernel-kernel, kernel-user or user-user processes).
Kill is a system call which is used to send signals to a process. It does not interact with hardware directly. So why do we need to make costly switch to kernel mode for executing that system call? I have not found any evidence of "special" system calls which do not trap into kernel mode before starting execution. Hence, the question.