We're trying to start using this as a guideline for organizing namespaces:

https://github.com/Prismatic/eng-practices/blob/master/clojure/20130927-ns-organization.md

It's something we discussed in a retro before you started, and haven't quite gotten in the habit of doing consistently.  Private functions seem to be generally frowned upon in the clojure community, because they make testing more difficult.  The suggestion that I've seen is that if you have some functions that you want to really, really encourage people not to call, you should put them in a sub-namespace called "internal" or similar, but still make them public.

This isn't a hard-and-fast rule but I think it's what we're roughly shooting for at the moment.

Wouldn't be a terrible idea to raise this question in the clojure chat room if you're curious to hear other people's takes, and I'm happy to consider adjusting our current "best practices" if there's a compelling reason.