To add a bit more context about the original problem:
library A depends on library B.
library B in this case modifies the printer. A does not use any functions from it.
That is the default setup, but some users will not want the printer modified when using library A so I was hoping that they could exlcude it from the dependencies and library A would not require it in that case.
Another approach that will work for me is having the user set a property, similar to how you do with e.g. -Dclojure.spec.compile-asserts=false, but I thought classpath exclusion might be good, if there was a way it could be made to work.