Literally every file operation HAS to go through the kernel. This is implementing "what does it mean to read/write this special device file"
On the other hand, to be fair, a device driver itself (even though it is represented as a "special file") does not need to have the notion of a file system built into it.