While I do think there are a lot of reasons to why one should not write in assembly, time-critical base routines can often benefit a lot from being written in assembly (take GMP's mpn-module for instance). However, this puts some constraint on how the code should be formatted (in GMP's case, this means that everything the mpz-module does is derived from the mpn-module), which cannot be said for all applications.
I've been interested to try out (Net|Open|Free)BSD for a while. I mostly code and compile C code. What should one expect when going from Linux to either of these BSD systems?