I see the problem with the maximum of 78 contexts. The tree would be slow that way showing all possible contexts. Maybe solvable with restricted context access by language and/or division.
The translator does not have to change [[~xx]]. That should be done during DB import or during parsing.
One problem with custom link generation and finding resources would be the missing support for the alias map array (resource map maybe, if I see this right). These are used for caching. You have to bypass this with a custom solution, the
Lingua code could help there since it supports translatable aliases. You should talk with Rico (goldsky) about impacts and bottlenecks.