All functions returned by a given arity of partial or comp are of the same Java class under the hood, whereas defining an anonymous function always generates a new class, and I've heard that fewer classes can result in better performance from a JIT perspective. But I'm just speculating and haven't actually run the benchmarks. So, [citation needed].
From a more practical perspective: I always prefer to give my anonymous functions names (e.g. `(fn foo [x])`, not `(fn [x])`), so that the stack traces are a bit more self-explanatory, but partial and comp don't let you do that. Although sometimes the added readability of a higher-order function outweighs that concern.