Gnu make does not need make to build (it includes a build shell script for that), gcc can be built using any C compiler via a 3-stage bootstrap. But sbt, it seems, can only be built by sbt.
It is way simpler than that. You can specify version of sbt's jar your project needs right in your build files. When you run any against your project it will download the version you specified if different from the one installed. It is not by any means a circular dependency.
Honestly, I don't see it as a problem.