Right now, there's two message systems, one in mediawiki.js that basically just handles dollar-sign replacements, and an increasingly sophisticated one in jqueryMsg that tries to emulate the server. To make it more complicated, jqueryMsg monkey-patches mediawiki.js.
What do people think about merging them together, keeping mediawiki.js as the entry point? mediawiki.js already has the APIs that match the server. They just don't work anything like the server without jqueryMsg.
The jqueryMsg module could be kept as a redirect module like mediawiki.action.watch.ajax.
The only real downside is the bandwidth (but increasing numbers of modules are depending on jqueryMsg already), and potentially (depending if we keep the "fast path" exception) a small performance cost.
But done right I think it would significantly simplify documentation and (especially) unit testing.
Matt Flaschen