At scale? Very necessary. The default GC as of Java 8 (the last version I used in production) suffered significant performance issues above 40 GB of working set, and required careful tuning thereafter.
The default GC from IBM, Azul, and others wasn't the same one.
In fact Azul has made a business of selling JVMs with GC that can handle hundreds of data GBs.
Modern OpenJDK versions also have such GCs now.