One think I failed to mention in the meeting today. btcd extends bitcoind jrpc interface, so it reimplements it and then adds methods to the same endpoint. We are doing the same, so there's a btcd combined interface, which is just derived from bitcoind, and an independent bitcoind interface.
However, the btcd implementation of bitcoind is not only ancient, it's drifted. I made the decision to not attempt to follow btcd down that road, and instead we serve up actual/current bitcoind under btcd. It's a compat break, but I think a pretty reasonable one.
(edited)