declaring that a particular configuration is supported is a very strong statement for us to make. It means that we are committing to deal with any issues found when running Elasticsearch in such a configuration, which we can only do once we are very confident there are no bugs or performance issues related to the configuration itself. A GC bug can have very serious consequences, including corruption and data loss, and Lucene and Elasticsearch are unusually stressful workloads for the JVM so they tend to find issues that other tests might miss. Moreover the existence of past bugs can be a good indicator of future bugs, so the issues that were fixed in 2016 still raise concerns today. It really does take years to gain the level of confidence needed to declare a configuration to be supported.
We are aware that some people, like yourself, are successfully running their production systems using G1GC (and other unsupported options) and these pioneers are part of the reason why we put the effort into choosing new configurations to test so we can declare them to be supported. However, the Java 8 G1GC implementation is different enough from the Java 10 implementation (and by extension, also the Java 11 implementation) that we must consider them to be separate things. Given that Java 8 is approaching the end of its life, it is difficult to justify the effort that would be required for us to declare support for the Java 8 G1GC too.