While most of the additional functionality the old account system had over the label system were irrelevant, there is one critical functionality that no longer seems to be possible with labels - specifically, the ability to request a list of transactions (TXID + amount) that pay to addresses with a given account/label. As per the release notes for 0.17.0. the _listtransaction_ method was changed as follows;

> The account named parameter has been renamed to dummy. If provided, the dummy parameter must be set to the string *, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged).

_getreceivedbylabel_ and _getreceivedbyaddress_ only returns the balance, while _listreceivedbylabel_ and _listreceivedbyaddress_ do not actually filter; additionally, the former does not list transactions at all, while the latter does not include the amounts per TXID. While you could use _getaddressesbylabel_ to iterate over addresses, there is no corresponding method to get the TXIDs and amounts from this list of addresses. None of these can therefore be used as a direct replacement for this method.

The only way I can see to get anything resembling the old functionality with the API changes is to dump the entire transaction history with _listreceivedbyaddress_, filter the result by label manually, then use _gettransaction_ on each listed TXID. This is both very fiddly and very inefficient, and likely impossible when you go past a certain number of lifetime transactions.

Am I missing something here, or will it really no longer possible be to iterate over transactions received by account/label? If so, this basically means that many applications will no longer be usable with releases starting from Bitcoin Core 0.18.
UniValue subobj(UniValue::VOBJ);
            UniValue detail = DescribeAddress(embedded);
            subobj.pushKVs(detail);
            UniValue wallet_detail = boost::apply_visitor(*this, embedded);
            subobj.pushKVs(wallet_detail);
            subobj.pushKV("address", EncodeDestination(embedded));
            subobj.pushKV("scriptPubKey", HexStr(subscript.begin(), subscript.end()));
            
            if (subobj.exists("pubkey")) obj.pushKV("pubkey", subobj["pubkey"]);
            obj.pushKV("embedded", std::move(subobj));
            if (include_addresses) a.push_back(EncodeDestination(embedded));
        } else if (which_type == TX_MULTISIG) {
            
            
            obj.pushKV("sigsrequired", solutions_data[0][0]);
            UniValue pubkeys(UniValue::VARR);
            for (size_t i = 1; i < solutions_data.size() - 1; ++i) {
                CPubKey key(solutions_data[i].begin(), solutions_data[i].end());
                if (include_addresses) a.push_back(EncodeDestination(key.GetID()));
                pubkeys.push_back(HexStr(key.begin(), key.end()));
            }
            obj.pushKV("pubkeys", std::move(pubkeys));
        }
        
        
        
        
        if (include_addresses) obj.pushKV("addresses", std::move(a));
    }
    explicit DescribeWalletAddressVisitor(CWallet* _pwallet) : pwallet(_pwallet) {}