The main problem used to be i18n and all the things that it translates.
Most of those (like taxonomy terms, fields, node types, menus), do not have an explicitly language assignment like nodes do. So the original strings are assumed to be in the default language (unlike interface strings, where the original is always en).
If the old default language was english and you change it to german, then i18n will no longer translate them to german on the german site but will try to translate them from english to english.
i18n added a workaround for this problem, on one of the many settings pages can be controlled if a different language than the default should be used as that original language. That's not a perfect solution, because it means that the site admins must create the original fields, node types, menu links and terms (assuming that i18n_string is used to translate them) in english and then translate them to german.