Problem: Currently, all DataValue formatter callbacks are called when creating a new DispatchingValueFormatter through the OutputFormatValueFormatterFactory. This happens for example in the WikibaseRepo.MessageParameterFormatter service. However, that means that the format-factory-callback for a wikibase-sense is executed when just trying to create a new bare Item. This can lead to unintuitive errors, as it happened in Add lexeme language to formatted sense ID (Ieaf6fabd).
One option to tackle this would be to make DispatchingValueFormatter create the formatters on demand as needed and then cache them. That way we should have less coupling in practice.