why it worked anyway before but broke in JDK 11
That’s actually the one I was curious about. As I understand it, there were two methods being generated that had the same signature except for the return type. That’s definitely not legal in Java the language in any version, so I wonder why the behavior changed now.
Further investigation leads me to suspect a connection to JEP 181, “Nest-Based Access Control”, which also involves bridge methods. But I’m just guessing.