@edvin if you're looking for suggestions on #196, i work on an app that solved this with a custom Google Guice scope
Use an annotation that's neither -at-Singleton nor -at-Prototype, say -at-Project if you were building something like Intellij IDEA or -at-Document for something like the Microsoft Word. Then, any other -at-Project annotated classes will be injected in the proper scope when an object graph is started like from a Stage
This lets you use "by inject()" the same way you're using the Controller injection, but all the components in a given scope will have their proper references, not an app-wide Singleton or an unshared Prototype