mISDN has one problem that is even bigger than these: the kernel oopses if modules aren't loaded in the right order. misdn-init works around that, but if it doesn't work for some reason (and I can think of multiple here), the user is left with a kernel that oopses during hardware discovery and never gets to a stage where this can be rectified, as almost all distributions now have hardware discovery before the first opportunity to get a shell. At least these were my experiences the last time I tried it on my test box.

This is the reason I've kept mISDN out of the last two Debian stable releases, despite users' requests.

When a hardware driver module is loaded, it should only do basic hardware initialisation; it is certainly not necessary to set up the entire stack (or even decide on a protocol, which currently needs to be handed in via module parameter -- before userland code is there that wants to talk to the hardware, there is no reason to have the hardware active).