I have split GWT, shared and server code and still compile GWT + shared using JDK 11. Doesn't hurt at all as long as the server code can be updated to newer JDK versions.
Currently I am using GIN 2.1.2 with Guice 6. In the GWT module (*.gwt.xml) I also have <set-configuration-property name="gin.classloading.exceptedPackages" value="com.google.gwt.core.client.impl"/> configured.
I am relatively sure your issue is Guice 3. For example support for JDK 13 was added in Guice 4.2.3. Try upgrading it to 6.x which has support for JDK 21 and then try again compiling with JDK 17. Also make sure to use --release 11 for GWT code.
While Dagger2 works, it will increase the size of your compiled JavaScript because Dagger2 generates quite a lot of classes. I tried it once in a larger application and the JavaScript output size increased by 1MB. I can't remember the original application size when using GIN but I think it must be somewhere between 8-10MB. For smaller projects Dagger2 should be fine I guess.
-- J.