System calls annoy the kernel, library calls frequently do not (unless they use syscalls).
Linux kernel developers despise additional ioctl() interfaces, sysconf() calls and more, they would rather that most user space programs just read from /proc (which 80% of the time gets you what you want). That's why Linus introduced USER_HZ (units exported in procfs in units of 100'ths of a second intervals).
In short, if you can avoid pestering the kernel to get some value, do so. If your talking to the kernel, you should be telling it to do something, not asking it for info.
Yes, we need ioctl, we need syscalls, but they need to be limited. Bugging the kernel to allocate memory is fine, bugging the kernel to fill a sysinfo structure is fine. Bugging the kernel to find out where you put your house keys, bad.
99.9 % of the time that a process is put into perennial disk sleep (D) , its because its waiting for the answer to an impossible question. Usually, that question is made impossible because you forgot to handle the previous 10 syscalls.
Microkernels are a little better at telling you to go away, but not always. :)