On linux, this is not the case. You cannot even assume that people have keyboards, monitors and mice. A system will work perfectly with no console I/O devices. Even if these do exist, one cannot assume that the APIs that you want exist.
Isnt it better to decide on a say a set of common apis that most of the drivers will work on.. and then spread these through various distros and then write device drivers assumin that people will have those apis. Sure it will take time, but as far as I am concerned device support is one of the bigges obstacles to the spread of linux, so i would think its worth it. Writing drivers for systems that have the normal devices connected, and with some basic apis present will help a lot more people than writing drivers with the assumptions you mentioned.
People with special reqmts like no console i/o etc. should be the ones who should have to make the extra effort and not the guy with a normal desktop pc.
-- Puneet