So that the kernel can implement some kind of security against bad frames
being sent out and/or garbage. You can certainly make a case for some
higher level protocols being in user space, and we do that for all the higher
appletalk layers and for RPC. In theory if you are bored you can write SPX
as a library on top of the IPX code too.
Alan