I've used the blessings of Java in Domino development for quite a while. About two years ago we faced a complex requirement we had to implement a solution for. The attempted approach cried for a event broker / event bus implementation which is truly a pain in the .... to implement in LotusScript.
So we switched to Java and used Reflection to register any objects that need to be notified whenever an event is posted on the broker / bus. Always remember, however, to alter the java.policy file on the server to enable use of Reflection.
The coupling of Formula / LotusScript frontend - Java Backend was kind of quirky at first, but when we got Webservice Providers and Consumers within Lotus Domino it worked like a charm implementing the Java (server) side as provider and the LotusScript (client) end as consumer. This way the bridge between the two languages is provided by Notes/Domino. Works very well.
Ever since this experience I try to implement as much as I can in Java, it's just so much easier and direct to work with. The only thing I don't like at all is having to recycle every single Domino object you created in order to avoid memory leaking.