Emacs-26 has threads yes. How many packages use them at the current time I do not know. With nrepl, though, most of the problems are likely to get from the interaction with an external process which has been able to happen asynchronously for a long time. So, threading (or its lack) might not be the problem.
There are nice tools like "which-key" which massively reduce the work of remembering shortcuts. They are, incidentally, only shortcuts. The menus work as well.
I wrote a different version of the pizza ontology years ago, where the level of "spiciness" was dependent on the country you came from -- so American "hot" was equivalent to British "Medium".
It's hard to do, ontologically, but you can. It tends to make your ontology very complex though, and at the same time incapable (because it's hard to detect contradictions). So you should only do it when you need to.
This article is light-hearted of course. But there are food ontologies for real -- the BBC have one for organising their recipes. And there is another which is used for food crops, which is used for research into disease (of the crops), and helping to alleviate hunger.
It doesn't force anything though, unless you statically refer to the runtime. It does force you to exclude their logging backend, but that is straight-forward enough.
My framework is built in Clojure. The interpreter is always there. Think of it like a statistics library with R.
The idea of a "main application" is itself not a clear one. There are a set of functions you can use. Whether you choose to launch directly over the library or import it is a matter of convenience.