I always work in a single process, REPL and server, there's no need to separate them out generally.
You might have better luck with the G1 collector, in addition to JVM tuning. The G1 has the useful property of giving memory back to the OS when a GC is performed.
Use the command-line flag: -XX:+UseG1GC
If this is confusing, in short, PHP is 'interpreted', thus it's leaner and slower than a 'compiled' language like clojure. There's a lot of stuff that needs to be loaded for clojure to work (the compiler lives in memory), and you'll take a hit in startup-time and memory footprint. Some of this is java-specific, probably CLJS on V8 can do better in terms of memory footprint.