Multiple plugins / file translators can register themselves for the same extension - thus the need to know what the exact translator used was. (In my case, there are multiple translators for the ".abc" format, and I want to know which was used.)
Getting an MPxFileTranslator*, while still not ideal (ie, wouldn't work for any built-in maya types), would probably be good enough. However, for my needs it would probably be good enough. Is the method you're referring to MFileIO::beforeReferenceUserFileTranslator()? If so, this (and many other referencing callbacks) have an achilles heel - there's no way I know of to directly query which reference is being currently loaded in a unique way. You can use beforeReferenceFilename() to get the name of the file, but that's not unique - you could can reference in the exact same file multiple times, and I don't know how to distinguish which reference we're currently loading.
Having said that - in order for that to be an issue, it would mean that we'd have to be loading the exact same file multiple times, but with DIFFERENT translators... ie, do something like:
file -reference "myFile.abc" -namespace "nativeAlem" -type "Alembic";
file -reference "myFile.abc" -namespace "usdAlem" -type "pxrUsdImport";
...which seems unlikely. So this may be our best option...