"FreeBSD is back to its incredible performance and now can take advantage of multi-core/CPUs systems very well... So well that some benchmarks on both Intel and AMD systems showed release 7.0 being faster than Linux 2.6 when running PostreSQL or MySQL. Federico Biancuzzi interviewed two dozen developers to discuss all the cool details of FreeBSD 7.0: networking and SMP performance, SCTP support, the new IPSEC stack, virtualization, monitoring frameworks, ports, storage limits and a new journaling facility, what changed in the accounting file format, jemalloc(), ULE, and more."

Therefore people like the sourcecode as base and compiling from sourcecode isn't anything alien to a UNIX or free UNIX derivative.

One other reason for this circumstance is the fact that certain programs need to be compiled if options are to be set at compile time. For example, in order to put all the features and codecs you want into mplayer, you usually edit Makefile.local and add your stuff. There is no binary package for every imaginable combination of make options (e. g. WITH_SDL, WITH_VORBIS, WITHOUT_RUNTIME_CPUDETECTION). The same reason applies if you need to install software on lower end hardware (e. g. CFLAGS+= -O3 -pipe -mfpmath=sse -ffast-math). Often, compile time options give you the "speed boost" you need in order to make the application usable. Another important reason is to get hardware working the way you want, if the developers consider your hardware "nonstandard" or the behaviour you're expecting as "not usual" (e. g. support of three button mouse in X: middle mouse button + vertical movement = wheel emulation, but middle mouse button click = middle mouse button click without entering wheel emulation mode - this requires patching mouse.c from X.org and recompilation).