There's a level of complexity in PPP that does not lend itself
to a safe kernel implementation. I far prefer doing it in userland,
myself.
Also, for some reason (maybe it's the fact that we're talking barely
30Kbits/sec over dialup and really not much more then 3MBit over a
cablemodem)... the userland version isn't really going to be
noticeably slower.
-Matt