This causes the ObjectId pass in MRQ to fail to distinguish between materials in the resulting Cryptomatte file.
It looks like FGeometryCacheSceneProxy doesn't implement CreateHitProxies so it's falling back to the default implementation:
HHitProxy* FPrimitiveSceneProxy::CreateHitProxies(UPrimitiveComponent* Component,TArray<TRefCountPtr<HHitProxy> >& OutHitProxies
Which isn't aware of component and material indexes. So FGeometryCacheSceneProxy needs to override this function and add multiple HHitProxy's to OutHitProxies, one per section per material.
1. Create a Alembic Cache (Geometry Cache) that has multiple materials in it.
2. In the Level Viewport go Show > Developer > Hit Proxies
3. Import the Alembic Cache as both a Skeletal Mesh and a Geometry Cache
4. Use a color picker to closely examine the colors shown by the Hit Proxy, the Skeletal Mesh will have one color per material (but may be very close in visual color, so color picking is needed to determine). The GeoCache will have the same value for everything.
There's no existing public thread on this issue, so head over to AnswerHub just mention UE-125251 in the post.