As I tried to explain in the paper, this started as an experiment, and not "let's write this in Haskell and use it in production".
But aside from that, the cluster balancer runs in just 5MB of RAM (RSS). I'm not familiar with Scala, but I doubt any JVM can run in just that; and the way we deploy this software, we like it to use as few memory as possible.