During Full GC "during gc" verification (-XX:VerifyDuringGC) g1 accesses the heap from top() to bottom() as if it were fully parsable.
This is wrong, because we already started class unloading in phase 1/marking (full gc "during gc" verification is right after phase 1), but the region's parsable bottom's are not set correctly (i.e. are bottom()) and since verification walks heap region object by object it accesses nominally unloaded klass data.
There is no issue at this point as metaspace data has not really been unloaded yet, but if we want to move metaspace purging to an earlier stage this will be an issue.
I.e. keeping this behavior would make JDK-8317809 uglier than necessary.