Right now we've language fallback implemented for field API fields, however with entity fields being translatable as well, we really to support language fallbacks on entity field level as well. Then, we can probably remove the field API variant in favour of the general one.
I think we should remove any possibility to have run-time alterations language fallbacks that depend on context, but get a general list of language fallback rules (per entity type, per field?), which then could be applied to queries as well - later on (contrib?, d9?).
As this is rather important to have for multi-lingual content, setting to major.