What makes OpenBSD preferable to Linux?
A lot of different reasons, which mostly come down to a difference in development and licensing philosophies.
Linux developers like to reinvent the wheel time and time again, making different mistakes each time; OpenBSD usually holds off on implementing new features until they know they have a design that is likely to work well. It's not something you notice if you use Linux casually, but having used it as my primary OS for the past six years, it's become very apparent over time. OpenBSD has remained relatively steady, with fewer total changes but a greater overall improvement.
OpenBSD also favours simple solutions to problems, with only as many knobs exposed to the user as are actually necessary (and very complete documentation of all such knobs), resulting in a smaller codebase that runs well even on very old hardware. Contrast this with Linux's (and GNU's) approach of making software that can be anything to anyone, and is so configurable that it becomes a nightmare to support, with almost every feature being underdocumented.
Finally, OpenBSD has a very strict liberal
licensing policy. They are not accepting any new GPL'd code into the system, although some parts (like the compiler) are under the GPL because there is currently no viable alternative. In short, their policy is that their software should be usable by anyone for any purpose, with as few restrictions as international copyright law permits, which makes it very easy to comply with their licensing terms. Contrast this with the greedy tentacles of legalese in the
GPLv3, which aims to use copyright law to influence patent law, among other things. A complex licence is more difficult to comply with, and that can be a large deterrent for commercial use. While Linux itself is not licensed under the GPLv3 (it uses the older GPLv2, which is still complex, but less so), many of the GNU userland tools most often found on Linux systems are.
Those are a few of the biggest reasons I'm making the switch from Linux to OpenBSD, and I've come to recognise them simply by observing the problems they cause in the real world when running Linux. I don't have examples handy, so it's difficult to substantiate them, but they are my personal experience.
Edit: Linux and GNU are actually both based on AT&T's System V from the 1980s, which has a similarly questionable history of poorly reinventing things (its init being a good example, having been reimplemented as a GNU project, and now being replaced with something just as bad in most Linux distros). OpenBSD is based on BSD, which forked from AT&T's UNIX in 1979, and (aside from having System V interfaces added in the late '80s for POSIX compatibility) has generally followed a much simpler approach to software development. For contrast,
OpenBSD's init is an open-source reimplementation of the original UNIX init model.
I mention this mainly to illustrate that the difference in philosophy goes back farther than the Linux and OpenBSD projects, and that it is almost as old as UNIX itself.