Look at "make-pathname" [1], for example. It was made as general as possible as a compromise between all the different filesystem path representations used at the time. On modern systems, several of the parameters, like the host, device, and version don't really make sense any more, but they're still there for backwards compatibility.
Another thing that bothers some people (not me) are function names like "car" and "cdr", which come from the assembly language instructions of the 1950s era computer where the first Lisp was implemented. I think most people use "first" and "rest" these days, but car, cdr, cadr, etc. are still used all over the place.
Somewhat related, there's more inconsistent naming than in most languages. The destructive form of concatenate is nconc, but the destructive form of reverse is nreverse, etc.. Most built-in predicates end with "p", but some of the older ones don't. These days there's pretty solid consensus on how things should have been done, and how they should be done in the future, but we're still stuck with the old stuff.
It's basically 60 years of backwards compatibility concessions.
You're right, removing the bad parts of Common Lisp would technically require coming out with a new version of the standard, "Common Lisp 2015" or something, but I don't think anybody has proposed doing that. My guess is it's easier to just come out with a new Lisp dialect and hope people start using it, like Clojure has done, than the massive resource sink of coming up with a revised standard.
[1] http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_p...
http://www.lispworks.com/documentation/HyperSpec/Body/f_car_...
What I often see on the Internet is people complaining about car/cdr and suggesting to replace them with first/rest or equivalent. Most of the times those people don't understand why doing so is a bad idea.
Cons cells can be (and are, all the time) used to build arbitrary data structures, not just lists. "first" and "rest" or "head" and "tail" make sense if you're dealing with a linked list (and notice, that Common Lisp does provide you such named functions), but they are not right names if your structure is a tree, or a graph (yes, you can build cyclical structures with cons cells).
Sure, car/cdr terms are relicts of the old architecture, but I'm yet to see someone propose names that are agnostic to data structures constructed with cons cells. And, as some old Lisp hacker mentioned somewhere, car/cdr combinations like caaddr, etc. are easy to say over the phone ;).
I also highly recommend those lectures to everyone who haven't seen them. There's a lot of insight there (and even more in SICP book).
As it happens, I'm at the beginning of writing a CL for a very constrained, very weird little environment (hope to have a Show HN about it in a few months to a year), and the host and device parameters are extremely useful to me.
They're keywords; you needn't use them if you don't want them.
> My guess is it's easier to just come out with a new Lisp dialect and hope people start using it, like Clojure has done, than the massive resource sink of coming up with a revised standard.
Which is sad, since a new standard (say, a CL-2015 package…) would be able to build on top of much of what is really good about CL.
I would love to see an example of pathnames being useful today. In my experience they're the only part of Common Lisp that is an active impediment to getting work done on a Unix system. It would be awesome if we could have a generic file naming mechanism that would also represent URIs. Unfortunately Common Lisp pathnames manage to suck at both Unix filenames and URIs.
I've got a PDF somewhere of Richard Gabriel's notes on the history of Lisp; it sheds interesting (if opinionated) light on the evolution of Common Lisp.