Content handlers are supposed to be registered in $wgContentHandlers, so they can be enumerated by ContentHandler::getContentModels() (for the API and for other purposes). But the 'ContentHandlerForModelID' hook allows for creating handlers in ContentHandler::getForModelID() that are not registered.
The end result is a handler that mostly exists, but can't be used with the API or Special:ChangeContentModel, doesn't get tested by ContentHandlerSanityTest, and doesn't get its getFieldsForSearchIndex() method called by SearchEngine.
One possible solution would be to only call the hook for entries in $wgContentHandlers where the value is null, to allow the handlers to be created on demand with dependency injection while still being properly registered.
Extensions (mis)using this hook appear to be MediaWiki-extensions-WikibaseRepository and JsonConfig.