I would rather put the handling of conversion of other mime-types into the search package then into the sc implementors. What would be the gain of de-centralizing it? Also the service contract already implements passing on the mime-type, so it seems perfectly prepared for that.
Packages are always free to convert to text themselves anyway and set the mime-type in their service contract implementation to text/plain, as for example notes does (in notes__datasource). They should be safe to assume that no further conversion of their content is going to happen when they set this mime-type.