"Have I just hit a bad corner of the Lisp world?"
Sort of.
The real problem is that it is difficult to know what the current 'best' implementations of different libraries are, and what versions of common lisp they are intended to build under (and operating system!)
This is compounded by the fact that the higher level libraries have more dependencies.
As there are dozens of libraries and a smallish CL community, this leads to the problem where author of sub-library a makes change which breaks dependent library b, and no one realizes this for months and months. When someone such as yourself comes along (even if it is possible for the library to work quite well with minor changes), the build process fails is not so obvious about what is wrong. Your reaction is to say 'CL is totally fucked' and run screaming to the hills is only natural.
That said, I have a few tips:
1.) If you are going to use an open source lisp, linux is generally the easier operating system to run it on.
2.) If you are going to download a library, don't use asdf-install.
ASDF itself is great for actually structuring the project and laying out your directories in a coherent manner (managing dependencies), but asdf-install is a waste of time (in my opinion, anyway, I'm sure someone will disagree with me).
Instead, go to the library's page/repo and download the latest version.
Make sure that someone has been working on the library recently (I try for < 1 year since last update).
(Another good way to check if a library works is to search Github...
EX: http://github.com/search?type=Code&language=common-lisp&...
).
Once you get a version that works, hang onto it somewhere in case the guy working on it breaks it with an update. If you can find a version that almost works, it is (a lot of the time) worth it to salvage it and push the updates.
Just read the error messages very carefully and it should be fixable.
asdf-install is great in theory, but there are too many synchronization issues, and not enough humans pushing fixes/updates to manage them.
3.) Keep your lisp image up to date. The people developing libraries are generally using the latest build of clozure/sbcl/etc. You should too.
Scheme implementations don't have these problems because there is no expectation of write once run anywhere with regard to libraries. Different implementations have their own package managers and BDFLs.
Clojure doesn't have this problem because it hasn't been around long enough to have a lot of dead libraries.
I'd like to point out that it is perfectly reasonable to program functionally in common lisp. I take a fairly functional style in most of my code.
edit:punctuation, grammar...