iirc the reason for this is that i started with the GUI related code and did the rpcwallet code at the very end.

In most places I found it useful to include watchonly addresses in Debit/Credit calculations.
e.g to find out if a transaction is relevant to you:
    bool IsFromMe(const CTransaction& tx) const
    {
        return (GetDebit(tx) > 0);
    }

In the rpcwallet i would actually prefer to also default to (MINE_SPENDABLE|MINE_WATCH_ONLY) if everyone agrees to include watchonly balance by default.

However you are correct that this might be a source of future bugs so if you prefer I'll change them to MINE_SPENDABLE everywhere and change the affected function calls.