> more or less the same for each site, with one of the sites being slightly different
That's because the Clojure library isolated you from the vastly different interpretations that those providers have of the spec. Had you written your connectors from scratch, you would have experienced the "mess."