If that can be done in such a way that defaulting fires for FromString (say, even without EDR turned on) it could ensure OverloadedStrings has nearly zero impact on users.
This may not be an issue but you may need to check that just adding FromString to the list of classes for which defaulting is done is sufficient to make cases like (length "hello") work as unlike the other defaulting cases, you get situations where it is partially known. e.g. we've determined that the argument is [a], but not String. This can't happen with the Int, Integer, (), cases, which either unify or don't.
-Edward